Browse Source

1、学生端查看作业回复内存溢出的bug
2、导出对账单空指针
3、退出房间后调用设备控制接口的问题

zouxuan 2 years ago
parent
commit
797ad32f8d

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentCourseHomeworkReplyDao.java

@@ -1,10 +1,12 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.StudentCourseHomeworkCommentDto;
 import com.ym.mec.biz.dal.entity.StudentCourseHomeworkReply;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 public interface StudentCourseHomeworkReplyDao extends BaseDAO<Long, StudentCourseHomeworkReply> {
 
@@ -33,4 +35,8 @@ public interface StudentCourseHomeworkReplyDao extends BaseDAO<Long, StudentCour
      * @param courseScheduleIdList
      */
     void delByCourseScheduleIds(@Param("courseScheduleIdList") List<Long> courseScheduleIdList);
+
+    int countReply(Map<String, Object> params);
+
+    List<StudentCourseHomeworkCommentDto> queryReplyPage(Map<String, Object> params);
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentCourseHomeworkReplyService.java

@@ -1,10 +1,14 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.StudentCourseHomeworkCommentDto;
 import com.ym.mec.biz.dal.entity.StudentCourseHomeworkReply;
+import com.ym.mec.biz.dal.page.StudentCourseHomeworkReplyQueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 public interface StudentCourseHomeworkReplyService extends BaseService<Long, StudentCourseHomeworkReply> {
 
     void insertTeacherReply(StudentCourseHomeworkReply bean);
 
+    PageInfo<StudentCourseHomeworkCommentDto> queryReplyPage(StudentCourseHomeworkReplyQueryInfo queryInfo);
 }

+ 11 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -494,16 +494,18 @@ public class ExportServiceImpl implements ExportService {
                         }
                     } else {
                         JSONArray divMembers = (JSONArray) paymentMap.get("div_members");
-                        for (Object divMember : divMembers) {
-                            Map<String, Object> divMemberMap = (Map<String, Object>) divMember;
-                            divMemberMap.putAll(paymentMap);
-                            if (divMemberMap.get("member_id").equals("0")) {
-                                divMemberMap.put("member_id", ConfigInit.merNo);
-                            }
-                            if (divMemberMap.get("fee_flag").equals("N")) {
-                                divMemberMap.put("fee_amt", "0.00");
+                        if(divMembers != null){
+                            for (Object divMember : divMembers) {
+                                Map<String, Object> divMemberMap = (Map<String, Object>) divMember;
+                                divMemberMap.putAll(paymentMap);
+                                if (divMemberMap.get("member_id").equals("0")) {
+                                    divMemberMap.put("member_id", ConfigInit.merNo);
+                                }
+                                if (divMemberMap.get("fee_flag").equals("N")) {
+                                    divMemberMap.put("fee_amt", "0.00");
+                                }
+                                data.add(divMemberMap);
                             }
-                            data.add(divMemberMap);
                         }
                     }
                 }

+ 20 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkReplyServiceImpl.java

@@ -19,6 +19,7 @@ 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;
 import org.springframework.stereotype.Service;
@@ -117,17 +118,26 @@ public class StudentCourseHomeworkReplyServiceImpl extends BaseServiceImpl<Long,
 		super.insert(bean);
 	}
 
-	/*@Override
-	public PageInfo queryPage(QueryInfo queryInfo) {
-		StudentCourseHomeworkReplyQueryInfo studentCourseHomeworkReplyQueryInfo= (StudentCourseHomeworkReplyQueryInfo) queryInfo;
-		studentCourseHomeworkReplyQueryInfo.setParentID(null);
-		PageInfo studentCourseHomeworkReplyPageInfo = super.queryPage(studentCourseHomeworkReplyQueryInfo);
-		for(Object temp:studentCourseHomeworkReplyPageInfo.getRows()){
-			studentCourseHomeworkReplyQueryInfo.setParentID(((StudentCourseHomeworkCommentDto)temp).getReplyId());
-			getTree((StudentCourseHomeworkCommentDto) temp,studentCourseHomeworkReplyQueryInfo);
+	@Override
+	public PageInfo<StudentCourseHomeworkCommentDto> queryReplyPage(StudentCourseHomeworkReplyQueryInfo queryInfo) {
+		queryInfo.setParentID(null);
+		PageInfo<StudentCourseHomeworkCommentDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<StudentCourseHomeworkCommentDto> dataList = null;
+		int count = studentCourseHomeworkReplyDao.countReply(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = studentCourseHomeworkReplyDao.queryReplyPage(params);
 		}
-		return studentCourseHomeworkReplyPageInfo;
-	}*/
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
 
 	@Override
 	public int delete(Long id) {

+ 23 - 0
mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkReplyMapper.xml

@@ -142,4 +142,27 @@
     <select id="findAllReplyByStudentCourseHomeworkID" resultMap="StudentCourseHomeworkReply">
         select id_,IF(parent_id_ IS NULL,0,parent_id_) parent_id_ from student_course_homework_reply where student_course_homework_id_=#{studentCourseHomeworkID}
     </select>
+    <select id="countReply" resultType="java.lang.Integer">
+        SELECT COUNT(*) FROM student_course_homework_reply schr
+        LEFT JOIN student_course_homework sch ON schr.student_course_homework_id_=sch.id_
+        <include refid="queryCondition"/>
+    </select>
+    <select id="queryReplyPage" resultMap="studentCourseHomeworkComment" parameterType="map">
+        SELECT
+        schr.id_ comment_id_,
+        schr.user_id_ comment_user_id_,
+        suc.username_ comment_user_name_,
+        suc.avatar_,
+        IF(suc.user_type_ LIKE '%STUDENT%',0,1) is_teacher_,
+        schr.content_ comment_content_,
+        schr.create_time_ comment_time,
+        schr.msg_type_
+        FROM
+        student_course_homework_reply schr
+        LEFT JOIN sys_user suc ON schr.user_id_=suc.id_
+        LEFT JOIN student_course_homework sch ON schr.student_course_homework_id_=sch.id_
+        <include refid="queryCondition"/>
+        ORDER BY schr.id_ DESC
+        <include refid="global.limit"/>
+    </select>
 </mapper>

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

@@ -290,7 +290,10 @@
 		COUNT(DISTINCT DATE_FORMAT(create_time_,'%Y-%m-%d')) train_day_,
 		COUNT(CASE WHEN feature_ = 'CLOUD_STUDY_EVALUATION' THEN behavior_id_ END) record_num_
 		from sys_music_compare_record
-		where user_id_ IS NOT NULL
+		where user_id_ IN
+		<foreach collection="studentIdList" open="(" close=")" item="userId" separator=",">
+			#{userId}
+		</foreach>
 		<if test="startTime != null and startTime != ''">
 			AND DATE_FORMAT(create_time_, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
 		</if>
@@ -316,7 +319,10 @@
 		COUNT(DISTINCT DATE_FORMAT(create_time_,'%Y-%m-%d')) train_day_,
 		COUNT(CASE WHEN feature_ = 'CLOUD_STUDY_EVALUATION' THEN behavior_id_ END) record_num_
 		from sys_music_compare_record
-		where user_id_ IS NOT NULL
+		where user_id_ IN
+		<foreach collection="studentIdList" open="(" close=")" item="userId" separator=",">
+			#{userId}
+		</foreach>
 		<if test="startTime != null and startTime != ''">
 			AND DATE_FORMAT(create_time_, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
 		</if>

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

@@ -1132,7 +1132,10 @@ public class RoomServiceImpl implements RoomService {
             roomMemberDao.updateMusicByRidAndUid(roomId, userId, enable);
         }
         Room room = roomDao.findByRid(roomId);
-        deviceResourceMessage.setSoundVolume(room.getSoundVolume());
+        //看了下日志,存在退出房间后短时间内请求该接口的情况
+        if(Objects.nonNull(room)){
+            deviceResourceMessage.setSoundVolume(room.getSoundVolume());
+        }
         deviceResourceMessage.setUserId(userId);
         imHelper.publishMessage(userId, roomId, deviceResourceMessage, 1);
         log.info("syncDeviceState : {}, {}", roomId, enable);

+ 9 - 2
mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseHomeworkReplyController.java

@@ -4,6 +4,7 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.CourseScheduleDao;
 import com.ym.mec.biz.dal.dao.StudentCourseHomeworkDao;
+import com.ym.mec.biz.dal.dto.StudentCourseHomeworkCommentDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesMessage;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
@@ -13,7 +14,9 @@ import com.ym.mec.biz.service.ExtracurricularExercisesMessageService;
 import com.ym.mec.biz.service.StudentCourseHomeworkReplyService;
 import com.ym.mec.biz.service.StudentServeService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import com.yonge.log.model.AuditLogAnnotation;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -89,8 +92,12 @@ public class StudentCourseHomeworkReplyController extends BaseController {
 
     @ApiOperation(value = "回复查询")
     @PostMapping("/queryPage")
-    public Object queryPage(@RequestBody StudentCourseHomeworkReplyQueryInfo queryInfo){
-        return succeed(studentCourseHomeworkReplyService.queryPage(queryInfo));
+    public HttpResponseResult<PageInfo<StudentCourseHomeworkCommentDto>> queryPage(@RequestBody StudentCourseHomeworkReplyQueryInfo queryInfo){
+        //前端表示这个参数必填,所以加上了参数校验
+        if(queryInfo.getStudentCourseHomeworkId() == null){
+            throw new BizException("参数校验异常");
+        }
+        return succeed(studentCourseHomeworkReplyService.queryReplyPage(queryInfo));
     }
 
     @ApiOperation(value = "回复查询-公用")