瀏覽代碼

fix:学生端课后作业添加群聊

liujunchi 3 年之前
父節點
當前提交
8b086395cb

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/SysMusicCompareRecord.java

@@ -4,6 +4,7 @@ import java.math.BigDecimal;
 import java.time.DayOfWeek;
 import java.time.LocalDate;
 
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import com.yonge.cooleshow.biz.dal.enums.DeviceTypeEnum;
@@ -75,6 +76,17 @@ public class SysMusicCompareRecord extends BaseEntity {
 	
 	private String partIndex;
 
+	@ApiModelProperty("音乐过期 0:否 1:是")
+	private Integer expire;
+
+	public Integer getExpire() {
+		return expire;
+	}
+
+	public void setExpire(Integer expire) {
+		this.expire = expire;
+	}
+
 	public SysMusicCompareRecord() {
 	}
 

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseHomeworkServiceImpl.java

@@ -176,6 +176,19 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
             throw  new BizException("未找到作业信息");
         }
 
+        // 课程组的群聊
+        ImGroup imGroup = imGroupService.getByCourseGroupId(courseHomeworkDetailVo.getCourseGroupId());
+        if (imGroup != null) {
+            courseHomeworkDetailVo.setImGroupId(imGroup.getId());
+        }
+
+        // 购买人数
+        List<CourseScheduleStudentPayment> studentPaymentList = courseScheduleStudentPaymentService.getByCourseId(
+                courseHomeworkDetailVo.getCourseScheduleId());
+        if (!CollectionUtils.isEmpty(studentPaymentList)) {
+            courseHomeworkDetailVo.setStudentNum(studentPaymentList.size());
+        }
+
         // 学生信息
         CourseHomeworkDetailVo studentInfoDetailVo = baseMapper
                 .selectPaymentStudentInfo(courseHomeworkDetailVo.getCourseScheduleId(),studentId);

+ 30 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysMusicCompareRecordServiceImpl.java

@@ -2,6 +2,8 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.Date;
@@ -12,6 +14,8 @@ import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import com.yonge.cooleshow.biz.dal.service.SysConfigService;
+import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -58,6 +62,9 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
     private SysUserFeignService sysUserFeignService;
 
 	@Autowired
+	private SysConfigService sysConfigService;
+
+	@Autowired
 	private MusicSheetDao musicSheetDao;
 
 	@Override
@@ -102,6 +109,19 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		jsonObject.put("heardLevel", userLastEvaluationData.getHeardLevel());
 		jsonObject.put("videoFilePath", userLastEvaluationData.getVideoFilePath());
 		jsonObject.put("partIndex", userLastEvaluationData.getPartIndex());
+		if(userLastEvaluationData.getCreateTime() == null) {
+			jsonObject.put("expire", 1);
+		} else {
+			LocalDateTime localDateTime = userLastEvaluationData.getCreateTime()
+																.toInstant()
+																.atZone(ZoneId.systemDefault())
+																.toLocalDateTime();
+			if (localDateTime.plusDays(Long.parseLong(getExpireTime())).compareTo(LocalDateTime.now()) <0) {
+				jsonObject.put("expire", 1);
+			} else {
+				jsonObject.put("expire", 0);
+			}
+		}
 
 		MusicSheet sysMusicScore = musicSheetDao.selectById(userLastEvaluationData.getMusicSheetId());
 		if(Objects.nonNull(sysMusicScore)){
@@ -136,6 +156,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		queryInfo.setFeatureType(FeatureType.CLOUD_STUDY_EVALUATION);
 		MapUtil.populateMap(params, queryInfo);
 
+		params.put("expireTime",getExpireTime());
 		List<SysMusicCompareRecord> dataList = null;
 		int count = this.findCount(params);
 		if (count > 0) {
@@ -192,4 +213,13 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		return pageInfo;
 	}
 
+
+	private String getExpireTime() {
+
+		String homeworkExpireTime = sysConfigService.findConfigValue(SysConfigConstant.HOMEWORK_EXPIRE_TIME);
+		if (org.springframework.util.StringUtils.isEmpty(homeworkExpireTime)) {
+			return "9999";
+		}
+		return homeworkExpireTime;
+	}
 }

+ 47 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseHomeworkDetailVo.java

@@ -27,6 +27,20 @@ public class CourseHomeworkDetailVo {
     @ApiModelProperty("课程组id")
     private Long courseGroupId;
 
+    @ApiModelProperty("课程组名")
+    private String courseGroupName;
+
+    @ApiModelProperty("课堂编号-第几堂课")
+    private Integer classNum;
+
+
+    @ApiModelProperty("群聊id")
+    private String imGroupId;
+
+
+    @ApiModelProperty("学员人数")
+    private Integer studentNum;
+
     @ApiModelProperty("学生课程作业id")
     private Long studentHomeworkId;
 
@@ -107,6 +121,39 @@ public class CourseHomeworkDetailVo {
     @ApiModelProperty("作业过期 1:已过期 0:未过期")
     private Integer homeworkExpire;
 
+
+    public String getCourseGroupName() {
+        return courseGroupName;
+    }
+
+    public void setCourseGroupName(String courseGroupName) {
+        this.courseGroupName = courseGroupName;
+    }
+
+    public Integer getClassNum() {
+        return classNum;
+    }
+
+    public void setClassNum(Integer classNum) {
+        this.classNum = classNum;
+    }
+
+    public String getImGroupId() {
+        return imGroupId;
+    }
+
+    public void setImGroupId(String imGroupId) {
+        this.imGroupId = imGroupId;
+    }
+
+    public Integer getStudentNum() {
+        return studentNum;
+    }
+
+    public void setStudentNum(Integer studentNum) {
+        this.studentNum = studentNum;
+    }
+
     public Integer getHomeworkExpire() {
         return homeworkExpire;
     }

+ 4 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseHomeworkMapper.xml

@@ -188,6 +188,9 @@
         ,ch.create_time_ as decorateTime
         ,sch.attachments_ as studentAttachments
         ,sch.teacher_replied_ as teacherReplied
+        ,cg.id_ as courseGroupId
+        ,cg.name_ as courseGroupName
+        ,cs.class_num_ as classNum
         ,sch.submit_time_ as submitTime
         ,sch.id_ as studentHomeworkId
         ,sch.student_id_ as studentId
@@ -203,6 +206,7 @@
         ,if(sch.teacher_replied_ is null or sch.teacher_replied_ = '',0,1) as reviewHomework
         ,if(sch.id_ is not null and date_add(sch.submit_time_,INTERVAL #{homeworkExpireTime} DAY) &lt; now(),1,0) as homeworkExpire
         from course_schedule cs
+        left join course_group cg on cs.course_group_id_ = cg.id_
         left join course_homework ch on ch.course_schedule_id_ = cs.id_
         left join course_schedule_student_payment cssp on cs.id_ = cssp.course_id_
         left join student_course_homework sch  on sch.course_schedule_id_ = cssp.course_id_ and sch.student_id_ = cssp.user_id_

+ 2 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml

@@ -147,9 +147,9 @@
 		       smcr.score_, smcr.intonation_, smcr.cadence_,
 		       smcr.integrity_, smcr.record_file_path_, smcr.video_file_path_, smcr.client_id_, smcr.device_type_, smcr.play_time_,
 		       smcr.monday_, smcr.create_time_,
-			sms.name_ sys_music_score_name_
+			sms.music_sheet_name_ sys_music_score_name_,if(smcr.create_time_ is not null and date_add(smcr.create_time_,INTERVAL #{expireTime} DAY) &lt; now(),1,0) as expire
 		FROM sys_music_compare_record smcr
-		LEFT JOIN sys_music_score sms on smcr.music_sheet_id_ = sms.id_
+		LEFT JOIN music_sheet sms on smcr.music_sheet_id_ = sms.id_
 		<include refid="queryCondition"/>
 		ORDER BY id_ DESC
 		<include refid="global.limit"/>