根据ids查询课程及学习信息,增加属性

This commit is contained in:
daihh
2022-11-03 16:06:19 +08:00
parent cbea7697f5
commit 0bfb95f760
4 changed files with 54 additions and 16 deletions

View File

@@ -35,6 +35,7 @@ import com.xboe.module.teacher.service.ITeacherService;
import com.xboe.school.study.dto.StudyContentDto; import com.xboe.school.study.dto.StudyContentDto;
import com.xboe.school.study.dto.StudyCourseNameDto; import com.xboe.school.study.dto.StudyCourseNameDto;
import com.xboe.school.study.dto.StudyCourseQuery; import com.xboe.school.study.dto.StudyCourseQuery;
import com.xboe.school.study.dto.StudyCourseSimple;
import com.xboe.school.study.entity.StudyCourse; import com.xboe.school.study.entity.StudyCourse;
import com.xboe.school.study.entity.StudyCourseItem; import com.xboe.school.study.entity.StudyCourseItem;
import com.xboe.school.study.entity.StudySignup; import com.xboe.school.study.entity.StudySignup;
@@ -654,14 +655,14 @@ public class StudyCourseApi extends ApiBaseController{
* 我的关注 二次查询 * 我的关注 二次查询
* */ * */
@PostMapping("/follow-ids") @PostMapping("/follow-ids")
public JsonResponse<List<StudyCourse>> followIds(@RequestBody StudyCourseQuery studyCourseQuery){ public JsonResponse<List<StudyCourseSimple>> followIds(@RequestBody StudyCourseQuery studyCourseQuery){
if(studyCourseQuery!=null && studyCourseQuery.getIds().isEmpty()){ if(studyCourseQuery!=null && studyCourseQuery.getIds().isEmpty()){
return badRequest("参数异常"); return badRequest("参数异常");
} }
if(studyCourseQuery!=null && studyCourseQuery.getAids().isEmpty()){ if(studyCourseQuery!=null && studyCourseQuery.getAids().isEmpty()){
return badRequest("无关注人"); return badRequest("无关注人");
} }
List<StudyCourse> studyCouseDtos = service.followids(studyCourseQuery); List<StudyCourseSimple> studyCouseDtos = service.followids(studyCourseQuery);
// List<String> ids=new ArrayList<String>(); // List<String> ids=new ArrayList<String>();
// for(StudyCourse scourse:studyCouseDtos) { // for(StudyCourse scourse:studyCouseDtos) {
// ids.add(scourse.getCourseId()); // ids.add(scourse.getCourseId());

View File

@@ -0,0 +1,38 @@
package com.xboe.school.study.dto;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
@Data
public class StudyCourseSimple {
private String id;
private String courseName;
private String courseId;
private String courseType;
private Integer source;
private String courseImage;
private Float progress;
private Float lastScore;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime addTime;
private String sysType1;
private String sysType2;
private String sysType3;
private String aid;
}

View File

@@ -1,18 +1,16 @@
package com.xboe.school.study.service; package com.xboe.school.study.service;
import java.util.List;
import com.xboe.common.OrderCondition; import com.xboe.common.OrderCondition;
import com.xboe.common.PageList; import com.xboe.common.PageList;
import com.xboe.school.study.dto.StudyCourseNameDto; import com.xboe.school.study.dto.StudyCourseNameDto;
import com.xboe.school.study.dto.StudyCourseQuery; import com.xboe.school.study.dto.StudyCourseQuery;
import com.xboe.school.study.dto.StudyCouseDto; import com.xboe.school.study.dto.StudyCourseSimple;
import com.xboe.school.study.entity.StudyCourse; import com.xboe.school.study.entity.StudyCourse;
import com.xboe.school.study.entity.StudyCourseItem; import com.xboe.school.study.entity.StudyCourseItem;
import com.xboe.school.study.entity.StudySignup; import com.xboe.school.study.entity.StudySignup;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
public interface IStudyCourseService { public interface IStudyCourseService {
/** /**
@@ -81,7 +79,7 @@ public interface IStudyCourseService {
/** /**
* 二次查询 我的关注 * 二次查询 我的关注
* */ * */
List<StudyCourse> followids(StudyCourseQuery studyCourseQuery); List<StudyCourseSimple> followids(StudyCourseQuery studyCourseQuery);
/** /**
* 查询课程最新学习记录的进度 * 查询课程最新学习记录的进度

View File

@@ -1,15 +1,11 @@
package com.xboe.school.study.service.impl; package com.xboe.school.study.service.impl;
import java.math.BigInteger;
import java.sql.Timestamp;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
import javax.transaction.Transactional; import javax.transaction.Transactional;
@@ -37,6 +33,7 @@ import com.xboe.school.study.dao.StudySignupDao;
import com.xboe.school.study.dao.StudyTimeDao; import com.xboe.school.study.dao.StudyTimeDao;
import com.xboe.school.study.dto.StudyCourseNameDto; import com.xboe.school.study.dto.StudyCourseNameDto;
import com.xboe.school.study.dto.StudyCourseQuery; import com.xboe.school.study.dto.StudyCourseQuery;
import com.xboe.school.study.dto.StudyCourseSimple;
import com.xboe.school.study.entity.StudyCourse; import com.xboe.school.study.entity.StudyCourse;
import com.xboe.school.study.entity.StudyCourseItem; import com.xboe.school.study.entity.StudyCourseItem;
import com.xboe.school.study.entity.StudySignup; import com.xboe.school.study.entity.StudySignup;
@@ -418,18 +415,18 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
} }
@Override @Override
public List<StudyCourse> followids(StudyCourseQuery studyCourseQuery) { public List<StudyCourseSimple> followids(StudyCourseQuery studyCourseQuery) {
//分两次查询,查询课程,查询学习记录 //分两次查询,查询课程,查询学习记录
String courseHql="Select id,coverImg,score from "+Course.class.getSimpleName()+" where id in(?1)"; String courseHql="Select id,coverImg,score,name,sysType1,sysType2,sysType3 from "+Course.class.getSimpleName()+" where id in(?1)";
String studyHql="Select courseId,addTime,progress,aid from "+StudyCourse.class.getSimpleName()+" where aid in(?1) and courseId in(?2)"; String studyHql="Select courseId,addTime,progress,aid from "+StudyCourse.class.getSimpleName()+" where aid in(?1) and courseId in(?2)";
List<StudyCourse> rs=new ArrayList<>(); List<StudyCourseSimple> rs=new ArrayList<>();
try { try {
List<Object[]> clist= studyCourseDao.findListFields(courseHql,studyCourseQuery.getIds()); List<Object[]> clist= studyCourseDao.findListFields(courseHql,studyCourseQuery.getIds());
List<Object[]> slist= studyCourseDao.findListFields(studyHql,studyCourseQuery.getAids(),studyCourseQuery.getIds()); List<Object[]> slist= studyCourseDao.findListFields(studyHql,studyCourseQuery.getAids(),studyCourseQuery.getIds());
//数据数量一般不会太多不超过20条所以直接使用嵌套循环 //数据数量一般不会太多不超过20条所以直接使用嵌套循环
for(Object[] sobjs : slist) { for(Object[] sobjs : slist) {
StudyCourse sc=new StudyCourse(); StudyCourseSimple sc=new StudyCourseSimple();
sc.setCourseId(ConvertUtil.toStr(sobjs[0])); sc.setCourseId(ConvertUtil.toStr(sobjs[0]));
sc.setAddTime((LocalDateTime)sobjs[1]); sc.setAddTime((LocalDateTime)sobjs[1]);
sc.setProgress(ConvertUtil.toFloat(sobjs[2])); sc.setProgress(ConvertUtil.toFloat(sobjs[2]));
@@ -440,6 +437,10 @@ public class StudyCourseServiceImpl implements IStudyCourseService{
if(cid!=null && cid.equals(sc.getCourseId())) { if(cid!=null && cid.equals(sc.getCourseId())) {
sc.setCourseImage(ConvertUtil.toStr(cobjs[1])); sc.setCourseImage(ConvertUtil.toStr(cobjs[1]));
sc.setLastScore(ConvertUtil.toFloat(cobjs[2]));//课程分数,使用此值来承载 sc.setLastScore(ConvertUtil.toFloat(cobjs[2]));//课程分数,使用此值来承载
sc.setCourseName(ConvertUtil.toStr(cobjs[3]));
sc.setSysType1(ConvertUtil.toStr(cobjs[4]));
sc.setSysType2(ConvertUtil.toStr(cobjs[5]));
sc.setSysType3(ConvertUtil.toStr(cobjs[6]));
break; break;
} }
} }