zouxuan 5 年之前
父节点
当前提交
6f5063e6aa

+ 12 - 1
edu-im/edu-im-server/src/main/java/com/keao/edu/im/pojo/StudentAttendance.java

@@ -17,6 +17,9 @@ public class StudentAttendance {
 	
 	/** 课程计划 */
 	private Long examRoomId;
+
+	/** 课程计划 */
+	private Integer examinationBasicId;
 	
 	/**  */
 	private Integer userId;
@@ -38,7 +41,15 @@ public class StudentAttendance {
 	
 	/**  */
 	private java.util.Date signOutTime;
-	
+
+	public Integer getExaminationBasicId() {
+		return examinationBasicId;
+	}
+
+	public void setExaminationBasicId(Integer examinationBasicId) {
+		this.examinationBasicId = examinationBasicId;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}

+ 12 - 1
edu-im/edu-im-server/src/main/java/com/keao/edu/im/pojo/TeacherAttendance.java

@@ -20,6 +20,9 @@ public class TeacherAttendance {
 	
 	/** 考场 */
 	private Long examRoomId;
+
+	/** 课程计划 */
+	private Integer examinationBasicId;
 	
 	/** 签到时间 */
 	private java.util.Date signInTime;
@@ -47,7 +50,15 @@ public class TeacherAttendance {
 	
 	/** 机构编号 */
 	private String tenantId;
-	
+
+	public Integer getExaminationBasicId() {
+		return examinationBasicId;
+	}
+
+	public void setExaminationBasicId(Integer examinationBasicId) {
+		this.examinationBasicId = examinationBasicId;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}

+ 45 - 29
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java

@@ -1,32 +1,24 @@
 package com.keao.edu.im.service.Impl;
 
-import com.alibaba.fastjson.JSONObject;
 import com.keao.edu.auth.api.client.EduUserFeignService;
 import com.keao.edu.auth.api.client.SysUserFeignService;
 import com.keao.edu.auth.api.entity.ExamRoom;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.exception.BizException;
 import com.keao.edu.im.common.ApiException;
-import com.keao.edu.im.common.DisplayEnum;
 import com.keao.edu.im.common.ErrorEnum;
 import com.keao.edu.im.config.IMProperties;
-import com.keao.edu.im.config.RoomProperties;
-import com.keao.edu.im.dao.RoomDao;
-import com.keao.edu.im.dao.RoomMemberDao;
-import com.keao.edu.im.dao.UserDao;
-import com.keao.edu.im.dao.WhiteboardDao;
+import com.keao.edu.im.dao.*;
 import com.keao.edu.im.job.ScheduleManager;
 import com.keao.edu.im.mec.im.IMHelper;
 import com.keao.edu.im.mec.im.message.*;
 import com.keao.edu.im.pojo.*;
-import com.keao.edu.im.service.MessageService;
 import com.keao.edu.im.service.RoomService;
 import com.keao.edu.im.utils.CheckUtils;
 import com.keao.edu.im.utils.CodeUtil;
 import com.keao.edu.im.utils.DateTimeUtils;
 import com.keao.edu.im.utils.IdentifierUtils;
 import com.keao.edu.im.whiteboard.WhiteBoardHelper;
-import io.rong.models.message.GroupMessage;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,9 +39,6 @@ public class RoomServiceImpl implements RoomService {
     private IMHelper imHelper;
 
     @Autowired
-    private RoomProperties roomProperties;
-
-    @Autowired
     private RoomDao roomDao;
 
     @Autowired
@@ -68,9 +57,6 @@ public class RoomServiceImpl implements RoomService {
     private UserDao userDao;
 
     @Autowired
-    private MessageService messageService;
-
-    @Autowired
     private IMProperties imProperties;
 
     @Autowired
@@ -79,6 +65,12 @@ public class RoomServiceImpl implements RoomService {
     @Autowired
     private EduUserFeignService eduUserFeignService;
 
+    @Autowired
+    private TeacherAttendanceDao teacherAttendanceDao;
+
+    @Autowired
+    private StudentAttendanceDao studentAttendanceDao;
+
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     @Override
     public RoomResult joinRoom(String roomId, boolean isAudience, boolean isDisableCamera,boolean isMusicMode) throws ApiException, Exception {
@@ -97,11 +89,11 @@ public class RoomServiceImpl implements RoomService {
                 isAssistant = true;
             }
         }
-        String display = "";
+//        String display = "";
         Date curTime = DateTimeUtils.currentUTC();
         List<Room> roomList = roomDao.findByRid(roomId);
         if (roomList.isEmpty()) {
-            saveRoom(roomId, roomId, curTime, display);
+            saveRoom(roomId, roomId, curTime, null);
             IMApiResultInfo resultInfo = imHelper.createGroup(new String[]{userId}, roomId, roomId);
             if (!resultInfo.isSuccess()) {
                 log.error("joinRoom IM error: roomId={}, {}", roomId, resultInfo.getErrorMessage());
@@ -110,9 +102,9 @@ public class RoomServiceImpl implements RoomService {
 //            else {
 //                scheduleManager.addExpiredTask(this, roomId);
 //            }
-        } else {
+        }/* else {
             display = roomList.get(0).getDisplay();
-        }
+        }*/
         RoleEnum roleEnum;
         RoomResult roomResult = new RoomResult();
         RoomResult.MemberResult userResult = new RoomResult.MemberResult();
@@ -150,7 +142,7 @@ public class RoomServiceImpl implements RoomService {
         msg.setUserName(realName);
         msg.setCamera(!isDisableCamera);
         imHelper.publishMessage(userId, roomId, msg);
-        if (roleEnum == RoleEnum.MainTeacher) {
+        /*if (roleEnum == RoleEnum.MainTeacher) {
             display = "display://type=0?userId=" + userId + "?uri=";
             updateDisplay(roomId, userId, display, 0);
             log.info("joinRoom, display changed: roomId={}, {}, userId={}", roomId, display, userId);
@@ -158,7 +150,7 @@ public class RoomServiceImpl implements RoomService {
             display = "display://type=1?userId=" + userId + "?uri=";
             updateDisplay(roomId, userId, display, 0);
             log.info("joinRoom, display changed: roomId={}, {}, userId={}", roomId, display, userId);
-        }
+        }*/
 
         List<UserInfo> userInfoList = userDao.findByUid(userId);
         if (userInfoList.isEmpty()) {
@@ -178,7 +170,7 @@ public class RoomServiceImpl implements RoomService {
         userResult.setUserId(userId);
         userResult.setRole(roleEnum.getValue());
         roomResult.setUserInfo(userResult);
-        roomResult.setDisplay(display);
+//        roomResult.setDisplay(display);
         roomResult.setRoomId(roomId);
 
         roomResult.setMembers(roomMemberDao.findByRid(roomId));
@@ -191,7 +183,34 @@ public class RoomServiceImpl implements RoomService {
     @Override
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     public void signIn(Long roomId) {
-
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        Integer userId = sysUser.getId();
+        log.info("roomSignIn: roomId={}, userId={}", roomId, userId);
+        ExamRoom examRoom = eduUserFeignService.getExamRoom(roomId.intValue());
+        Date date = new Date();
+        boolean isAssistant = false;
+        if (StringUtils.isNotEmpty(examRoom.getAssistantTeacherUserIdList())){
+            List<String> list = Arrays.asList(examRoom.getAssistantTeacherUserIdList().split(","));
+            if(list.contains(userId)){
+                isAssistant = true;
+            }
+        }
+        if(userId.equals(examRoom.getMainTeacherUserId()) || isAssistant){
+            TeacherAttendance teacherAttendance = new TeacherAttendance();
+            teacherAttendance.setExamRoomId(examRoom.getId());
+            teacherAttendance.setSignInTime(date);
+            teacherAttendance.setTeacherId(userId);
+            teacherAttendance.setTenantId(examRoom.getTenantId());
+            teacherAttendance.setCreateTime(date);
+            teacherAttendanceDao.save(teacherAttendance);
+        }else {
+            StudentAttendance studentAttendance = new StudentAttendance();
+            studentAttendance.setExamRoomId(examRoom.getId());
+            studentAttendance.setSignInTime(date);
+            studentAttendance.setUserId(userId);
+            studentAttendance.setCreateTime(date);
+            studentAttendanceDao.save(studentAttendance);
+        }
     }
 
     private void saveRoom(String roomId, String roomName, Date createTime, String display) {
@@ -223,13 +242,11 @@ public class RoomServiceImpl implements RoomService {
 
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     @Override
-    public Boolean leaveRoom(String roomId) throws Exception {
+    public Boolean leaveRoom(String roomId){
         SysUser user = sysUserFeignService.queryUserInfo();
         String userId = user.getId().toString();
         log.info("leaveRoom: roomId={}, userId={}", roomId,userId);
 
-
-        
         CheckUtils.checkArgument(user != null, "user must't be null");
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
         List<Room> roomList = roomDao.findByRid(roomId);
@@ -248,7 +265,7 @@ public class RoomServiceImpl implements RoomService {
         int userRole = roomMemberList.get(0).getRole();
         log.info("leaveRoom: roomId={}, role={}", roomId, RoleEnum.getEnumByValue(userRole));
 
-        if (userRole == RoleEnum.MainTeacher.getValue() || userRole == RoleEnum.AssistantTeacher.getValue()) {
+        /*if (userRole == RoleEnum.MainTeacher.getValue() || userRole == RoleEnum.AssistantTeacher.getValue()) {
             if (isUserDisplay(roomList.get(0), userId)) {
                 updateDisplay(roomId, userId, "", 0);
                 log.info("clear display cause speaker leave: roomId={}", roomId);
@@ -257,7 +274,7 @@ public class RoomServiceImpl implements RoomService {
             }
         } else {
             log.info("don't update current display: room={}, userRole={}", roomList.get(0), RoleEnum.getEnumByValue(userRole));
-        }
+        }*/
 
         if (roomMemberDao.countByRid(roomId) == 1) {
             IMApiResultInfo apiResultInfo = null;
@@ -296,7 +313,6 @@ public class RoomServiceImpl implements RoomService {
             }
         }
         userDao.deleteByUid(userId);
-
         return true;
     }
 

+ 4 - 3
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/Agency.java

@@ -1,6 +1,7 @@
 package com.keao.edu.user.entity;
 
 import com.keao.edu.auth.api.entity.SysUser;
+import com.keao.edu.user.enums.SettlementTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
@@ -23,7 +24,7 @@ public class Agency {
 	
 	/** 结算类型(按人/按利润比例) */
 	@ApiModelProperty(value = "结算类型(按人/按利润比例)",required = false)
-	private String settlementType;
+	private SettlementTypeEnum settlementType;
 
 	@ApiModelProperty(value = "分润金额",required = false)
 	private java.math.BigDecimal shareProfitAmount;
@@ -97,11 +98,11 @@ public class Agency {
 		return this.contactPhone;
 	}
 			
-	public void setSettlementType(String settlementType){
+	public void setSettlementType(SettlementTypeEnum settlementType){
 		this.settlementType = settlementType;
 	}
 	
-	public String getSettlementType(){
+	public SettlementTypeEnum getSettlementType(){
 		return this.settlementType;
 	}
 			

+ 4 - 3
edu-user/edu-user-server/src/main/resources/config/mybatis/AgencyMapper.xml

@@ -11,7 +11,7 @@
 		<result column="name_" property="name" />
 		<result column="contact_name_" property="contactName" />
 		<result column="contact_phone_" property="contactPhone" />
-		<result column="settlement_type_" property="settlementType" />
+		<result column="settlement_type_" property="settlementType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result column="share_profit_amount" property="shareProfitAmount" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
@@ -32,7 +32,8 @@
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.keao.edu.user.entity.Agency" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO agency (id_,name_,contact_name_,contact_phone_,settlement_type_,share_profit_amount,create_time_,update_time_,tenant_id_)
-		VALUES(#{id},#{name},#{contactName},#{contactPhone},#{settlementType},#{shareProfitAmount},#{createTime},#{updateTime},#{tenantId})
+		VALUES(#{id},#{name},#{contactName},#{contactPhone},#{settlementType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+		#{shareProfitAmount},NOW(),NOW(),#{tenantId})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -48,7 +49,7 @@
 		contact_phone_ = #{contactPhone},
 		</if>
 		<if test="settlementType != null">
-		settlement_type_ = #{settlementType},
+		settlement_type_ = #{settlementType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 		</if>
 		<if test="contactName != null">
 		contact_name_ = #{contactName},