update 教学质量接口内容

develop
hhb@hotmail.com 2 months ago
parent 40d2f399eb
commit 42d5d59699

@ -5,6 +5,9 @@ import cn.teammodel.common.PK;
import cn.teammodel.config.exception.ServiceException; import cn.teammodel.config.exception.ServiceException;
import cn.teammodel.controller.admin.service.AdminIndexDutyService; import cn.teammodel.controller.admin.service.AdminIndexDutyService;
import cn.teammodel.model.dto.admin.appraise.TimeRangeDto; import cn.teammodel.model.dto.admin.appraise.TimeRangeDto;
import cn.teammodel.model.dto.admin.common.GroupDto;
import cn.teammodel.model.dto.admin.common.RGroupList;
import cn.teammodel.model.dto.admin.common.RMember;
import cn.teammodel.model.dto.admin.teacher.TeacherDto; import cn.teammodel.model.dto.admin.teacher.TeacherDto;
import cn.teammodel.model.dto.weekDuty.LessonRecordDto; import cn.teammodel.model.dto.weekDuty.LessonRecordDto;
import cn.teammodel.model.entity.User; import cn.teammodel.model.entity.User;
@ -22,6 +25,8 @@ import cn.teammodel.security.utils.SecurityUtil;
import cn.teammodel.test.LessonRecordQueryService; import cn.teammodel.test.LessonRecordQueryService;
import cn.teammodel.utils.GroupUtil; import cn.teammodel.utils.GroupUtil;
import cn.teammodel.utils.SchoolDateUtil; import cn.teammodel.utils.SchoolDateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.azure.spring.data.cosmos.core.query.CosmosPageRequest; import com.azure.spring.data.cosmos.core.query.CosmosPageRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
@ -65,6 +70,8 @@ public class AdminIndexDutyServiceImpl implements AdminIndexDutyService {
private Environment env; private Environment env;
@Resource @Resource
private LessonRecordRepository lessonRecordRepository; private LessonRecordRepository lessonRecordRepository;
@Resource
private StudentRepository studentRepository;
/* @Autowired /* @Autowired
public AdminIndexDutyServiceImpl(Environment env) { public AdminIndexDutyServiceImpl(Environment env) {
@ -267,8 +274,44 @@ public class AdminIndexDutyServiceImpl implements AdminIndexDutyService {
Set<String> classIds = records.stream().filter(lessonRecord -> lessonRecord.getTmdid().equalsIgnoreCase(teacherDto.getTmdId())) Set<String> classIds = records.stream().filter(lessonRecord -> lessonRecord.getTmdid().equalsIgnoreCase(teacherDto.getTmdId()))
.flatMap(record -> record.getGroupIds().stream()) .flatMap(record -> record.getGroupIds().stream())
.collect(Collectors.toSet()); .collect(Collectors.toSet());
GroupDto groupDto = new GroupDto();
groupDto.setIds(new ArrayList<>(classIds));
groupDto.setSchoolId(teacherDto.getCode());
String url = env.getProperty("ies.server-url-group");
//List<ClassInfo> classes = classRepository.findAllByCodeAndIdIn("Class-"+artFindDto.getCode(),classIds);
Map<String, Object> groupId = GroupUtil.getGroupId(groupDto,new GroupUtil(env), request,url);
List<RGroupList> rGroupList = new ArrayList<>();
List<RMember> rMembers = new ArrayList<>();
for (Map.Entry<String, Object> entry : groupId.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (key.equals("groups")) {
String jsonGroups = JSON.toJSONString(value);
rGroupList = JSON.parseObject(jsonGroups, new TypeReference<List<RGroupList>>() {});
}
if (key.equals("members")) {
String jsonGroups = JSON.toJSONString(value);
rMembers = JSON.parseObject(jsonGroups, new TypeReference<List<RMember>>() {});
}
}
for(String classId : classIds) { for(String classId : classIds) {
Map<String, Object> mapper = new HashMap<>(); Map<String, Object> mapper = new HashMap<>();
// 班级内学生总数
//int stuInClassCount = studentRepository.countByClassIdAndCode(classId, String.format(PK.STUDENT, teacherDto.getCode()));
int stuInClassCount = 0;
String className = "";
for (RGroupList rGroup : rGroupList) {
if (rGroup.getId().equals(classId)) {
List<RMember> members = rGroup.getMembers();
stuInClassCount = members.size();
className = rGroup.getName();
}
}
mapper.put("stuInClassCount", stuInClassCount);
mapper.put("className", className);
// 计算本学期互动总数 // 计算本学期互动总数
int totalClientInteractionCount = records.stream().filter(lessonRecord -> int totalClientInteractionCount = records.stream().filter(lessonRecord ->
lessonRecord.getGroupIds().contains(classId)) lessonRecord.getGroupIds().contains(classId))

@ -31,5 +31,5 @@ public class AppraiseVoteDto {
@ApiModelProperty(value = "评价项唯一 id", required = true) @ApiModelProperty(value = "评价项唯一 id", required = true)
private String appraiseId; private String appraiseId;
@ApiModelProperty(value = "评价来源") @ApiModelProperty(value = "评价来源")
private String from; private String device;
} }

@ -22,5 +22,5 @@ public class AppraiseRecordItem {
String creator; String creator;
String creatorId; String creatorId;
private Long createTime; private Long createTime;
private String from; private String device;
} }

@ -22,4 +22,5 @@ public class RecordVo {
private Long createTime; private Long createTime;
@JsonProperty("isPraise") @JsonProperty("isPraise")
private boolean isPraise; private boolean isPraise;
private String device;
} }

@ -71,7 +71,7 @@ public interface AppraiseRecordRepository extends CosmosRepository<AppraiseRecor
/** /**
* , * ,
*/ */
@Query("select c.id as recordId, c.name as targetName, c.avatar, c.className, n.id as recordNodeId, c.targetId, c.targetType, n.creator, n.createTime, n.appraiseNode.name as appraiseName, n.appraiseNode.isPraise from Student as c join n in c.nodes where " + @Query("select c.id as recordId, c.name as targetName, c.avatar, c.className, n.id as recordNodeId, c.targetId, c.targetType, n.creator, n.createTime, n.appraiseNode.name as appraiseName, n.appraiseNode.isPraise, n.device from Student as c join n in c.nodes where " +
"c.code = @code and " + "c.code = @code and " +
"c.academicYearId = @academicYearId and " + "c.academicYearId = @academicYearId and " +
"(IS_NULL(@startTime) or n.createTime >= @startTime) and " + "(IS_NULL(@startTime) or n.createTime >= @startTime) and " +

@ -314,7 +314,7 @@ public class EvaluationServiceImpl implements EvaluationService {
boolean pushParent = appraiseVoteDto.isPushParent(); boolean pushParent = appraiseVoteDto.isPushParent();
String targetType = appraiseVoteDto.getTargetType(); String targetType = appraiseVoteDto.getTargetType();
String appraiseId = appraiseVoteDto.getAppraiseId(); String appraiseId = appraiseVoteDto.getAppraiseId();
String from = appraiseVoteDto.getFrom(); String from = appraiseVoteDto.getDevice();
User loginUser = SecurityUtil.getLoginUser(); User loginUser = SecurityUtil.getLoginUser();
String schoolId = loginUser.getSchoolId(); String schoolId = loginUser.getSchoolId();
String classId; String classId;
@ -380,7 +380,7 @@ public class EvaluationServiceImpl implements EvaluationService {
item.setCreator(loginUser.getName()); item.setCreator(loginUser.getName());
item.setCreatorId(loginUser.getId()); item.setCreatorId(loginUser.getId());
item.setCreateTime(Instant.now().toEpochMilli()); item.setCreateTime(Instant.now().toEpochMilli());
item.setFrom(from); item.setDevice(from);
// 处理学校与学生的差异 // 处理学校与学生的差异
if (targetType.equals(TARGET_CLASS)) { if (targetType.equals(TARGET_CLASS)) {
item.setSpread(spread); item.setSpread(spread);

Loading…
Cancel
Save