浏览代码

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

yonge 5 年之前
父节点
当前提交
961fc0cb58

+ 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
      */
     Date findLatestSignInDate(Integer classGroupId);
+
+    /**
+     * 根据签到状态和课程编号查询签到记录
+     * @param userId
+     * @param courseScheduleId
+     * @return
+     */
+    StudentAttendance findByStatusAndCourseScheduleId(@Param("userId") Integer userId, @Param("courseScheduleId") int courseScheduleId);
 }

+ 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;
 
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.util.List;
@@ -28,6 +29,17 @@ public class SubFeeSettingDto {
     @ApiModelProperty(value = "乐团编号(修改时用)",required = false)
     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() {
         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.StudentPersonalAttendanceDto;
 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.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
@@ -63,4 +65,11 @@ public interface StudentAttendanceService extends BaseService<Long, StudentAtten
 	 */
 	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){
                 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)));
             //删除原有的乐团声部规划
@@ -369,11 +375,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         List<StudentRegistration> registrations = studentRegistrationDao.findClassGroupStu(musicGroupId, null);
         Map<Integer,String> map = new HashMap<>(registrations.size());
         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(),""));
         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.dto.*;
 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.StudentAttendanceQueryInfo;
 import com.ym.mec.biz.service.StudentAttendanceService;
@@ -297,4 +294,27 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		}
 		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("学员签到数据异常");
+			}
+		}
+	}
 }

+ 4 - 3
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -362,7 +362,7 @@
 
     <select id="getCourseSchedulesWithDate" resultMap="courseScheduleDto">
         SELECT
-            cg.id_ seal_class_id_,
+            cs.id_ seal_class_id_,
             cs.name_,
             cs.type_,
             cs.id_,
@@ -403,7 +403,7 @@
 
     <select id="getStudentCourseSchedulesWithDate" resultMap="courseScheduleDto">
         SELECT
-        cgsm.class_group_id_ seal_class_id_,
+        cs.id_ seal_class_id_,
         cs.name_,
         cs.type_,
         cs.id_,
@@ -429,7 +429,7 @@
 
     <select id="getTeacherCourseSchedulesWithDate" resultMap="courseScheduleDto">
         SELECT
-        cg.id_ seal_class_id_,
+        cs.id_ seal_class_id_,
         cg.name_,
         su.username_ teacher_name_,
         cs.type_,
@@ -734,6 +734,7 @@
         SELECT
         cs.type_,
         cs.id_,
+        cs.id_ seal_class_id_,
         cs.class_date_,
         CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
         CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,

+ 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"
             keyColumn="id" keyProperty="id">
-        <!--
-        <selectKey resultClass="int" keyProperty="id" >
-        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
-        </selectKey>
-        -->
         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 id="addStudentAttendances" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
@@ -299,4 +294,7 @@
             student_attendance
             WHERE class_group_id_=#{classGroupId}
     </select>
+    <select id="findByStatusAndCourseScheduleId" resultMap="StudentAttendance">
+        SELECT * FROM student_attendance sa WHERE course_schedule_id_ = #{courseScheduleId} AND user_id_ = #{userId}
+    </select>
 </mapper>

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

@@ -226,8 +226,8 @@
     </select>
 
     <select id="countStudentCourses" resultType="int">
-        SELECT count(cg.*) FROM class_group cg
-        LEFT JOIN class_group_student_mapper cgsm ON cg.id_=cgsm.class_group_id_
+        SELECT count(*) FROM class_group cg
+        LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
         <if test="vipGroupId!=null">
             LEFT JOIN vip_group_class_group_mapper vgcgm ON cgsm.class_group_id_=vgcgm.class_group_id_
         </if>

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

@@ -209,7 +209,7 @@
     </select>
 
     <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}
     </select>
 

+ 4 - 0
mec-im/pom.xml

@@ -84,6 +84,10 @@
       <version>2.8.1</version>
     </dependency>
     <dependency>
+      <groupId>com.ym</groupId>
+      <artifactId>mec-biz</artifactId>
+    </dependency>
+    <dependency>
       <groupId>cn.rongcloud.im</groupId>
       <artifactId>server-sdk-java</artifactId>
       <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.UserDao;
 import com.ym.dao.WhiteboardDao;
-import com.ym.mec.im.IMHelper;
 import com.ym.job.ScheduleManager;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 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.im.IMHelper;
 import com.ym.mec.im.message.*;
 import com.ym.pojo.*;
 import com.ym.service.RoomService;
@@ -62,6 +68,15 @@ public class RoomServiceImpl implements RoomService {
     private UserDao userDao;
 
     @Autowired
+    private TeacherDao teacherDao;
+
+    @Autowired
+    private TeacherAttendanceService teacherAttendanceService;
+
+    @Autowired
+    private StudentAttendanceService studentAttendanceService;
+
+    @Autowired
     private IMProperties imProperties;
 
     @Autowired
@@ -77,15 +92,18 @@ public class RoomServiceImpl implements RoomService {
     @Transactional
     @Override
     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(roomId != null, "roomId must't be null");
 
         log.info("joinRoom: roomId={}, userName={}, isAudience={}, isDisableCamera={}", roomId, userName, isAudience, isDisableCamera);
         roomId = "DAYA" + roomId;
-//        String userId = getUser().getUserId().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 = "";
         Date curTime = DateTimeUtils.currentUTC();