Browse Source

Merge branch 'zx_saas_2022-_0505' of http://git.dayaedu.com/yonge/mec into master_saas

zouxuan 3 years ago
parent
commit
2c010d018b

+ 37 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherExercisesServiceDto.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 
+import io.swagger.annotations.ApiModelProperty;
+
 /**
  * @Author Joburgess
  * @Date 2020/4/17
@@ -8,12 +10,45 @@ public class TeacherExercisesServiceDto {
 
     private Integer teacherId;
 
-    /** 预期训练次数 */
+    @ApiModelProperty(value = "预期训练次数")
     private Integer expectExercisesNum;
 
-    /** 实际训练次数 */
+    @ApiModelProperty(value = "实际训练次数")
     private Integer actualExercisesNum;
 
+    @ApiModelProperty(value = "作业布置率")
+    private String expectExercisesRate = "0%";
+
+    @ApiModelProperty(value = "作业提交率")
+    private String exercisesReplyRate = "0%";
+
+    @ApiModelProperty(value = "作业点评率")
+    private String exercisesMessageRate = "0%";
+
+    public String getExpectExercisesRate() {
+        return expectExercisesRate;
+    }
+
+    public void setExpectExercisesRate(String expectExercisesRate) {
+        this.expectExercisesRate = expectExercisesRate;
+    }
+
+    public String getExercisesReplyRate() {
+        return exercisesReplyRate;
+    }
+
+    public void setExercisesReplyRate(String exercisesReplyRate) {
+        this.exercisesReplyRate = exercisesReplyRate;
+    }
+
+    public String getExercisesMessageRate() {
+        return exercisesMessageRate;
+    }
+
+    public void setExercisesMessageRate(String exercisesMessageRate) {
+        this.exercisesMessageRate = exercisesMessageRate;
+    }
+
     public Integer getTeacherId() {
         return teacherId;
     }

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExtraExercilseQueryInfo.java

@@ -10,6 +10,10 @@ import java.util.Date;
  */
 public class ExtraExercilseQueryInfo extends QueryInfo {
 
+	private String startTime;
+
+	private String endTime;
+
 	private String batchNo;// 批次号
 
 	private Integer teacherId;
@@ -26,6 +30,22 @@ public class ExtraExercilseQueryInfo extends QueryInfo {
 
 	private Date assignEndTime;// 布置作业的结束时间
 
+	public String getStartTime() {
+		return startTime;
+	}
+
+	public void setStartTime(String startTime) {
+		this.startTime = startTime;
+	}
+
+	public String getEndTime() {
+		return endTime;
+	}
+
+	public void setEndTime(String endTime) {
+		this.endTime = endTime;
+	}
+
 	public Integer getTeacherId() {
 		return teacherId;
 	}

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherServeHomeworkQueryInfo.java

@@ -10,6 +10,10 @@ import java.util.Date;
  */
 public class TeacherServeHomeworkQueryInfo extends QueryInfo {
 
+    private Date startTime;
+
+    private Date endTime;
+
     private Date monday;
 
     private Date sunday;
@@ -20,6 +24,22 @@ public class TeacherServeHomeworkQueryInfo extends QueryInfo {
 
     private String courseType;
 
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
     public Date getMonth() {
         return month;
     }

+ 3 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/StudentExtracurricularExercisesSituationService.java

@@ -2,10 +2,7 @@ package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.StudentExtracurricularExercisesSituation;
-import com.ym.mec.biz.dal.page.StudentExercisesSituationQueryInfo;
-import com.ym.mec.biz.dal.page.StudentServiceDetailQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherServeHomeworkQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherServeQueryInfo;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
@@ -80,4 +77,6 @@ public interface StudentExtracurricularExercisesSituationService extends BaseSer
 
     //删除指定学员服务指标
     void deleteByStudent(Integer studentId,String monday);
+
+    TeacherExercisesServiceDto getStatistics(ExtraExercilseQueryInfo queryInfo);
 }

+ 48 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java

@@ -9,12 +9,10 @@ import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.TeacherRemindTypeEnum;
-import com.ym.mec.biz.dal.page.StudentExercisesSituationQueryInfo;
-import com.ym.mec.biz.dal.page.StudentServiceDetailQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherServeHomeworkQueryInfo;
-import com.ym.mec.biz.dal.page.TeacherServeQueryInfo;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.StudentExtracurricularExercisesSituationService;
 import com.ym.mec.biz.service.SysMessageService;
+import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -30,6 +28,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.time.DayOfWeek;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -417,8 +416,15 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 		}
 		PageInfo<TeacherServeHomeworkPojo> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		//获取时间段内有服务指标的课程(课后作业)
-		Date firstDayOfMonth = DateUtil.getFirstDayOfMonth(queryInfo.getMonth());
-		Date lastDayOfMonth = DateUtil.getLastDayOfMonth(queryInfo.getMonth());
+		Date firstDayOfMonth;
+		Date lastDayOfMonth;
+		if(Objects.isNull(queryInfo.getStartTime())){
+			firstDayOfMonth = DateUtil.getFirstDayOfMonth(queryInfo.getMonth());
+			lastDayOfMonth = DateUtil.getLastDayOfMonth(queryInfo.getMonth());
+		}else {
+			firstDayOfMonth = queryInfo.getStartTime();
+			lastDayOfMonth = queryInfo.getEndTime();
+		}
 		List<Long> courseIds = studentExtracurricularExercisesSituationDao.queryCourseIdByClassDate(firstDayOfMonth,lastDayOfMonth,queryInfo.getTeacherId());
 		if(courseIds == null || courseIds.size() == 0){
 			return pageInfo;
@@ -617,6 +623,42 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 		studentExtracurricularExercisesSituationDao.deleteByStudent(studentId,monday);
 	}
 
+	@Override
+	public TeacherExercisesServiceDto getStatistics(ExtraExercilseQueryInfo queryInfo) {
+		TeacherExercisesServiceDto serviceDto = new TeacherExercisesServiceDto();
+		List<Integer> teacherIds = new ArrayList();
+		teacherIds.add(queryInfo.getTeacherId());
+		List<StudentExtracurricularExercisesSituation> teacherServeWithDate =
+				studentExtracurricularExercisesSituationDao.findTeacherServeWithDate(queryInfo.getStartTime(), queryInfo.getEndTime(), teacherIds, null);
+		if(!CollectionUtils.isEmpty(teacherServeWithDate)){
+			//预计训练次数
+			double expectExercisesNum = teacherServeWithDate.stream().mapToDouble(e -> e.getExpectExercisesNum()).sum();
+			//实际训练次数
+			double actualExercisesNum = teacherServeWithDate.stream().mapToInt(e -> e.getActualExercisesNum()).sum();
+			//布置率
+			BigDecimal oneHundred = new BigDecimal(100);
+			if(expectExercisesNum > 0d){
+				BigDecimal submitRate = new BigDecimal(actualExercisesNum).divide(new BigDecimal(expectExercisesNum), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(oneHundred).setScale(0);
+				serviceDto.setExpectExercisesRate(submitRate + "%");
+			}
+			//训练提交次数
+			double exercisesReplyNum = teacherServeWithDate.stream().mapToInt(e -> e.getExercisesReplyNum()).sum();
+			//提交率
+			if(actualExercisesNum > 0d){
+				BigDecimal submitRate = new BigDecimal(exercisesReplyNum).divide(new BigDecimal(actualExercisesNum), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(oneHundred).setScale(0);
+				serviceDto.setExercisesReplyRate(submitRate + "%");
+			}
+			//点评次数
+			double exercisesMessageNum = teacherServeWithDate.stream().mapToInt(e -> e.getExercisesMessageNum()).sum();
+			//点评率
+			if(actualExercisesNum > 0d){
+				BigDecimal submitRate = new BigDecimal(exercisesMessageNum).divide(new BigDecimal(exercisesReplyNum), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP).multiply(oneHundred).setScale(0);
+				serviceDto.setExercisesMessageRate(submitRate + "%");
+			}
+		}
+		return serviceDto;
+	}
+
 	@Transactional(rollbackFor = Exception.class)
 	public void delSituations(List<StudentExtracurricularExercisesSituation> situations){
 		if (CollectionUtils.isEmpty(situations)){

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesMapper.xml

@@ -225,6 +225,9 @@
 			<if test="createTime!=null">
 				AND DATE_FORMAT(create_time_, '%Y-%m') = DATE_FORMAT(#{createTime}, '%Y-%m')
 			</if>
+			<if test="startTime != null and startTime != ''">
+				AND DATE_FORMAT(#{createTime}, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
+			</if>
 		</where>
 		UNION ALL
 		SELECT ch.id_,ch.create_time_,'HOMEWORK' type_ FROM course_homework ch
@@ -255,6 +258,9 @@
 			<if test="createTime!=null">
 				AND DATE_FORMAT(create_time_, '%Y-%m') = DATE_FORMAT(#{createTime}, '%Y-%m')
 			</if>
+			<if test="startTime != null and startTime != ''">
+				AND DATE_FORMAT(#{createTime}, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
+			</if>
 		</where>
 		UNION ALL
 		SELECT ch.id_,ch.create_time_,'HOMEWORK' type_ FROM course_homework ch

+ 13 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/ExtracurricularExercisesController.java

@@ -12,6 +12,7 @@ import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherServeHomeworkQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherServeQueryInfo;
 import com.ym.mec.biz.service.ExtracurricularExercisesReplyService;
 import com.ym.mec.biz.service.ExtracurricularExercisesService;
 import com.ym.mec.biz.service.StudentExtracurricularExercisesSituationService;
@@ -63,6 +64,18 @@ public class ExtracurricularExercisesController extends BaseController {
         return succeed(studentExtracurricularExercisesSituationService.queryTeacherServeHomeworkDetail1(queryInfo));
     }
 
+
+    @ApiOperation(value = "获取老师训练统计")
+    @GetMapping("/getStatistics")
+    public HttpResponseResult getStatistics(ExtraExercilseQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        queryInfo.setTeacherId(sysUser.getId());
+        return succeed(studentExtracurricularExercisesSituationService.getStatistics(queryInfo));
+    }
+
     @ApiOperation(value = "统计老师当前时间能布置作业的课程数量")
     @GetMapping("/countWaitCreateHomeworkNum")
     public HttpResponseResult countWaitCreateHomeworkNum() {