zouxuan 5 năm trước cách đây
mục cha
commit
6c127d51d7

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageSendMode.java

@@ -6,7 +6,7 @@ import com.ym.mec.common.enums.BaseEnum;
  状态,1,表示短信;2,表示邮件; 3,app推送消息
  */
 public enum MessageSendMode implements BaseEnum<Integer, MessageSendMode> {
-	SMS(1, "短信"), EMAIL(2, "邮件"), PUSH(3, "app推送消息");
+	SMS(1, "短信"), EMAIL(2, "邮件"), PUSH(3, "app推送消息"), SEO(4, "站内推送消息");
 
 	private Integer code;
 

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 import java.util.Date;
 import java.util.Map;
+import java.util.Set;
 
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
@@ -18,6 +19,14 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	public int updateMessage(SysMessage message);
 
 	/**
+	 * 推送站内消息
+	 * @param userIds
+	 * @param messageType
+	 * @return
+	 */
+	boolean batchSeoMessage(Set<Integer> userIds,MessageTypeEnum messageType, Object... args);
+
+	/**
 	 * 批量发送消息
 	 * @param messageSender 消息发送者
 	 * @param subject 消息主题

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

@@ -9,11 +9,14 @@ 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;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,6 +50,8 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 	private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
 	@Autowired
 	private MusicGroupQuitDao musicGroupQuitDao;
+	@Autowired
+	private SysMessageService sysMessageService;
 
 	@Override
 	public BaseDAO<Long, StudentAttendance> getDAO() {
@@ -302,6 +307,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 			studentAttendance = new StudentAttendance();
 			ClassGroup classGroup = classGroupDao.findByCourseSchedule(courseScheduleId);
 			CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleId.longValue());
+			Date date = new Date();
 			if(classGroup != null && courseSchedule != null){
 				studentAttendance.setClassGroupId(classGroup.getId());
 				studentAttendance.setCourseScheduleId(courseScheduleId.longValue());
@@ -310,10 +316,32 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 				studentAttendance.setStatus(statusEnum);
 				studentAttendance.setUserId(userId);
 				studentAttendance.setTeacherId(courseSchedule.getActualTeacherId());
-				studentAttendance.setRemark(statusEnum==StudentAttendanceStatusEnum.NORMAL?"":"课程结束后学生未到");
+//				studentAttendance.setRemark(statusEnum==StudentAttendanceStatusEnum.NORMAL?"":"课程结束后学生未到");
 				studentAttendanceDao.insert(studentAttendance);
+				//点名完成推送
+				Map<Integer, String> receivers = new HashMap<Integer, String>(1);
+				receivers.put(userId, userId.toString());
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_NAMES_ACHIEVE, receivers, null, 0, "",
+						DateUtil.format(date,DateUtil.DATE_FORMAT_MIN));
+				//修改课程状态(如果是学生签到,并且课程未开始)
+				/*if(StudentAttendanceStatusEnum.NORMAL == statusEnum && courseSchedule.getStatus() == CourseStatusEnum.NOT_START){
+					courseSchedule.setStatus(CourseStatusEnum.UNDERWAY);
+					courseSchedule.setUpdateTime(date);
+					courseScheduleDao.update(courseSchedule);
+				}
+				if(StudentAttendanceStatusEnum.TRUANT == statusEnum && courseSchedule.getStatus() == CourseStatusEnum.UNDERWAY){
+					String classDate = DateUtil.getDate(courseSchedule.getClassDate());
+					String classTime = DateUtil.getTime(courseSchedule.getEndClassTime());
+					Date stringToDate = DateUtil.stringToDate(classDate + " " + classTime);
+					//当前课程已结束
+					if(DateUtil.minutesBetween(stringToDate,date) > 0){
+						courseSchedule.setStatus(CourseStatusEnum.OVER);
+						courseSchedule.setUpdateTime(date);
+						courseScheduleDao.update(courseSchedule);
+					}
+				}*/
 			}else {
-				throw new BizException("学员签到数据异常");
+				throw new BizException("学员班级或课程信息异常");
 			}
 		}
 	}

+ 34 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java

@@ -1,12 +1,7 @@
 package com.ym.mec.biz.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.Map.Entry;
-import java.util.Random;
 
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
@@ -90,7 +85,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		SysMessage message = null;
 		Date date = new Date();
 
-		List<SysMessage> messages = new ArrayList<SysMessage>();
+		List<SysMessage> messages = new ArrayList<>();
 
 		Integer userId = null;
 		String receiver;
@@ -134,6 +129,38 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
+	public boolean batchSeoMessage(Set<Integer> userIds, MessageTypeEnum messageType, Object... args) {
+		if (userIds == null || userIds.size() == 0) {
+			throw new BizException("接收地址不能为空");
+		}
+		SysMessageConfig messageConfig = sysMessageConfigService.queryByType(messageType);
+		if (messageConfig == null) {
+			throw new BizException("消息类型错误");
+		}
+		Date date = new Date();
+		SendStatusEnum status = SendStatusEnum.SUCCESSED;
+		String content = MessageFormatter.arrayFormat(messageConfig.getContent(), args);
+		SysMessage message = null;
+
+		List<SysMessage> messages = new ArrayList<>();
+		for (Integer userId:userIds) {
+			message = new SysMessage();
+			message.setUserId(userId);
+			message.setContent(content);
+			message.setCreateOn(date);
+			message.setModifyOn(date);
+			message.setReceiver(userId.toString());
+			message.setSendTime(date);
+			message.setStatus(status);
+			message.setType(MessageSendMode.SEO);
+			message.setReadStatus(0);
+			messages.add(message);
+		}
+		sysMessageDao.batchInsert(messages);
+		return true;
+	}
+
+	@Override
 	@Async
 	public boolean batchSendMessage(MessageSender messageSender, String subject, String content, Map<Integer, String> receivers, Date triggerTime,
 									Integer readStatus, String memo) {

+ 9 - 3
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml

@@ -107,9 +107,15 @@
         UPDATE music_group_subject_plan SET expected_student_num_ = #{expectedStudentNum},update_time_ = now() WHERE id_ = #{musicGroupSubjectPlanId}
     </update>
 
-    <update id="batchUpdateFee">
-        <foreach collection="plans" item="item" separator=";">
-            UPDATE music_group_subject_plan SET fee_ = #{item.fee},update_time_ = now() WHERE id_ = #{item.id}
+    <update id="batchUpdateFee" parameterType="java.util.List">
+        <foreach collection="plans" item="item" index="index" open="" close="" separator=";">
+            UPDATE music_group_subject_plan
+            <set>
+                fee_ = #{item.fee},update_time_ = now()
+            </set>
+            <where>
+                id_ = #{item.id}
+            </where>
         </foreach>
     </update>
 

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

@@ -82,13 +82,6 @@ public class RoomServiceImpl implements RoomService {
     @Autowired
     private SysUserFeignService sysUserFeignService;
 
-    /*private AuthUser getUser(){
-        String token = SecurityUtils.getToken();
-        String principal = SecurityUtils.getPrincipal().toString();
-        String json = redisTemplate.opsForValue().get(principal);
-        return JSON.parseObject(json,AuthUser.class);
-    }*/
-
     @Transactional
     @Override
     public RoomResult joinRoom(String userName, String roomId, boolean isAudience, boolean isDisableCamera) throws ApiException, Exception {
@@ -239,9 +232,12 @@ public class RoomServiceImpl implements RoomService {
     @Transactional
     @Override
     public Boolean leaveRoom(String roomId) throws Exception {
-        String token = SecurityUtils.getAuthenticationValue();
         SysUser user = sysUserFeignService.queryUserInfo();
         String userId = user.getId().toString();
+        Teacher teacher = teacherDao.get(user.getId());
+        if(teacher != null){
+            teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId),user.getId(), SignStatusEnum.SIGN_OUT,true);
+        }
         
         CheckUtils.checkArgument(user != null, "user must't be null");
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");

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

@@ -44,7 +44,7 @@ public class MusicGroupSubjectPlanController extends BaseController {
     }
 
     @ApiOperation(value = "修改乐团声部规划费用")
-    @GetMapping("/batchUpdateFee")
+    @PostMapping("/batchUpdateFee")
     @PreAuthorize("@pcs.hasPermissions('musicGroupSubjectPlan/batchUpdateFee')")
     public Object batchUpdateFee(@RequestBody List<MusicGroupSubjectPlan> musicGroupSubjectPlans) {
         return succeed(musicGroupSubjectPlanService.batchUpdateFee(musicGroupSubjectPlans));