艺术评测相关内容

11111
zhouj1203@hotmail.com 4 months ago
parent 3451287df9
commit 8e9d78dcc4

@ -0,0 +1,41 @@
package cn.teammodel.controller.admin.controller;
import cn.teammodel.common.R;
import cn.teammodel.controller.admin.service.AdminIndexDutyService;
import cn.teammodel.controller.admin.service.ArtService;
import cn.teammodel.model.dto.admin.appraise.TimeRangeDto;
import cn.teammodel.model.dto.admin.art.ArtFindDto;
import cn.teammodel.model.dto.admin.weekduty.AdminFindDutyRecordDto;
import cn.teammodel.model.dto.weekDuty.LessonRecordDto;
import cn.teammodel.model.vo.admin.ArtElementsVo;
import cn.teammodel.model.vo.admin.DutyIndexData;
import cn.teammodel.model.vo.admin.DutyNodeRankVo;
import cn.teammodel.model.vo.admin.DutyRankPo;
import cn.teammodel.model.vo.weekDuty.DutyRecordVo;
import cn.teammodel.service.DutyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("admin/art")
@Api(tags = "管理员端-艺术评测")
public class ArtController {
@Resource
private ArtService ArtService;
@PostMapping("getArtList")
@ApiOperation("获取当前学校艺术评测列表")
public R<List<ArtElementsVo>> findRecords(@Valid @RequestBody ArtFindDto artFindDto) {
List<ArtElementsVo> res = ArtService.getArtList(artFindDto);
return R.success(res);
}
}

@ -0,0 +1,11 @@
package cn.teammodel.controller.admin.service;
import cn.teammodel.model.dto.admin.art.ArtFindDto;
import cn.teammodel.model.vo.admin.ArtElementsVo;
import java.util.List;
import java.util.Map;
public interface ArtService {
List<ArtElementsVo> getArtList(ArtFindDto artFindDto);
}

@ -0,0 +1,60 @@
package cn.teammodel.controller.admin.service.impl;
import cn.teammodel.common.PK;
import cn.teammodel.controller.admin.service.ArtService;
import cn.teammodel.model.dto.admin.art.ArtFindDto;
import cn.teammodel.model.entity.school.ClassInfo;
import cn.teammodel.model.vo.admin.ArtElementsVo;
import cn.teammodel.repository.ArtRepository;
import cn.teammodel.repository.ClassRepository;
import cn.teammodel.repository.StudentRepository;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
@Service
public class ArtServiceImpl implements ArtService {
@Resource
private ArtRepository artRepository;
@Resource
private ClassRepository classRepository;
@Resource
private StudentRepository studentRepository;
@Override
public List<ArtElementsVo> getArtList(ArtFindDto artFindDto) {
List<ArtElementsVo> artElementsVos = artRepository.findPeriodById(artFindDto.getPeriodId(),"Art-"+ artFindDto.getCode());
List<String> classIds = artElementsVos.stream()
.map(ArtElementsVo::getClasses) // 正确的方法引用
.flatMap(List::stream) // 将内部列表扁平化
.collect(Collectors.toList());
List<ClassInfo> classes = classRepository.findAllByCodeAndIdIn("Class-"+artFindDto.getCode(),classIds);
try {
for (ArtElementsVo artElementsVo : artElementsVos) {
List<String> classes1 = artElementsVo.getClasses();
int stuInClassCount = 0;
for(String classId : classes1) {
stuInClassCount += studentRepository.countByClassIdAndCode(classId, String.format(PK.STUDENT, artFindDto.getCode()));
ArtElementsVo.ClassInfos classInfos = new ArtElementsVo.ClassInfos();
Optional<String> className = classes.stream()
.filter(classInfo -> classInfo.getId().equals(classId))
.map(ClassInfo::getName)
.findFirst();
classInfos.setId(classId);
classInfos.setName(className.orElse("No Class Name"));
artElementsVo.addClassesInfos(classInfos);
}
artElementsVo.setCount(stuInClassCount);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return artElementsVos;
}
}

@ -0,0 +1,21 @@
package cn.teammodel.model.dto.admin.art;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class ArtFindDto
{
@ApiModelProperty("学校编码")
private String code;
@ApiModelProperty("学段ID")
private String periodId;
@ApiModelProperty("学段类型")
private String periodType;
@ApiModelProperty("开始时间")
private Long startTime;
@ApiModelProperty("结束时间")
private Long endTime;
}

@ -0,0 +1,91 @@
package cn.teammodel.model.entity.common;
import cn.teammodel.model.entity.BaseItem;
import com.azure.spring.data.cosmos.core.mapping.Container;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Container(containerName = "Common")
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Art extends BaseItem {
private String name;
private String school;
public List<Tasks> settings;
public String creatorId;
public String createTime;
public String updateTime;
public int type;
public List<String> classes;
public List<String> stuLists;
public List<String> tchLists;
public List<String> sIds;
public String progress;
public String scope;
public int status;
public long size;
public String owner;
public String areaId;
public String pId;
public String presenter;
public String topic;
public long startTime;
public long endTime;
public long uploadSTime;
public long uploadETime;
public String uploadProgress;
public String address;
public String pk;
public String desc;
public String img;
public int publish;
public List<ArtSubject> subjects;
public ArtPeriod period;
public String periodType;
public List<LostStudent> lost;
public int pass;
public List<Integer> miss;
public List<Zymusicstd> zymusicstds;
public static class Acs {
public String infoId ;
public String acId ;
public String name ;
public String subject ;
public int isOrder ;
public int type ;
public String workDesc ;
public long workEnd ;
}
public static class Tasks {
public String id ;
public String quotaname ;
public List<String> path ;
public List<Acs> task ;
}
public static class ArtPeriod
{
public String id ;
public String name ;
}
public static class ArtSubject {
public String id ;
public String name ;
}
public static class LostStudent {
public String code ;
public String subject ;
public double stu ;
}
private static class Zymusicstd
{
public String code ;
public String label ;
public double percent ;
}
}

@ -0,0 +1,34 @@
package cn.teammodel.model.vo.admin;
import cn.teammodel.model.entity.common.Art;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ArtElementsVo {
public String id;
public String name;
public List<String> classes;
public long startTime;
public long endTime;
public List<Art.ArtSubject> subjects;
public List<ClassInfos> classesInfos = new ArrayList<>();
public int count;
public String progress;
public void addClassesInfos(ClassInfos classInfos) {
this.classesInfos.add(classInfos);
}
@Data
public static class ClassInfos {
public String id;
public String name;
}
}

@ -0,0 +1,25 @@
package cn.teammodel.repository;
import cn.teammodel.model.entity.common.Art;
import cn.teammodel.model.vo.admin.ArtElementsVo;
import com.azure.spring.data.cosmos.repository.CosmosRepository;
import com.azure.spring.data.cosmos.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author winter
* @create 2023-11-28 17:39
*/
@Repository
public interface ArtRepository extends CosmosRepository<Art, String> {
/**
* , ,
*/
@Query("select s.id,s.name,s.classes,s.startTime,s.endTime,s.subjects,s.progress from Art as s where s.period.id = @periodId and s.code = @code")
List<ArtElementsVo> findPeriodById(@Param("periodId")String periodId, @Param("code")String code);
}
Loading…
Cancel
Save