创建试卷 对实训标签及数量的查询
This commit is contained in:
parent
4d58238cfa
commit
e079307e4b
@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -146,6 +147,12 @@ public class PaperUserController {
|
||||
return this.paperUserFindPageService.findPaperUserForAccount(req);
|
||||
}*/
|
||||
|
||||
|
||||
@PostMapping("/question/label")
|
||||
public Collection<String> paperAllLabel(@RequestBody FindCountForQuestionReqVo req){
|
||||
return this.paperUserService.findAllLabel(req);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看组织下某个类型题的数量
|
||||
* 参数 tags 目前只支持单个
|
||||
|
@ -6,6 +6,7 @@ import club.joylink.rtss.entity.training2.PublishedTraining2WithBLOBs;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
@ -13,6 +14,9 @@ import java.util.List;
|
||||
@Mapper
|
||||
@Repository
|
||||
public interface PublishedTraining2DAO {
|
||||
|
||||
@Select("<script>select label_json from rts_published_training2 where org_id = #{orgId} and type = #{type}</script>")
|
||||
List<String> selectAllLabel(@Param("orgId") Long orgId,@Param("type") String type);
|
||||
long countByExample(PublishedTraining2Example example);
|
||||
|
||||
int deleteByExample(PublishedTraining2Example example);
|
||||
|
@ -9,11 +9,9 @@ import club.joylink.rtss.entity.paper.question.PaperQuestionExample;
|
||||
import club.joylink.rtss.entity.training2.PublishedTraining2;
|
||||
import club.joylink.rtss.entity.training2.PublishedTraining2Example;
|
||||
import club.joylink.rtss.exception.PaperExceptionAssert;
|
||||
import club.joylink.rtss.services.training2.Training2PublishService;
|
||||
import club.joylink.rtss.vo.AccountVO;
|
||||
import club.joylink.rtss.vo.paper.PaperQType;
|
||||
import club.joylink.rtss.vo.paper.PaperQuestionState;
|
||||
import club.joylink.rtss.vo.paper.PaperSubmitRspVo;
|
||||
import club.joylink.rtss.vo.paper.PaperUserWholeVo;
|
||||
import club.joylink.rtss.vo.paper.*;
|
||||
import club.joylink.rtss.vo.paper.convertor.PaperCompositionConvertor;
|
||||
import club.joylink.rtss.vo.paper.convertor.PaperUserConvertor;
|
||||
import club.joylink.rtss.vo.paper.convertor.PaperUserQuestionConvertor;
|
||||
@ -25,10 +23,7 @@ import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -52,6 +47,22 @@ public class PaperUserService {
|
||||
private PublishedTraining2DAO trainingDAO;
|
||||
@Autowired
|
||||
private PagerQuestionService paperQuestionService;
|
||||
@Autowired
|
||||
private Training2PublishService training2PublishService;
|
||||
|
||||
/**
|
||||
* 获取理论或实操的搓油标签
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
public Collection<String> findAllLabel(FindCountForQuestionReqVo req){
|
||||
if(req.getGroupType() == PaperQType.GroupType.Common){
|
||||
return paperQuestionService.findAllLable(req.getOrgId(),req.getSubType().name().toLowerCase());
|
||||
}else if(PaperQType.GroupType.Training.equals(req.getGroupType())){
|
||||
return this.training2PublishService.findAllLabel(req.getOrgId(),req.getSubType().name().toUpperCase());
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
/**
|
||||
* 获取组织某个类型题的数量
|
||||
*/
|
||||
@ -65,7 +76,8 @@ public class PaperUserService {
|
||||
BusinessConsts.TheoryType theoryType = this.getPaperQuestionType(subType);
|
||||
return paperQuestionService.queryCount(orgId,theoryType,tagStr);
|
||||
}else if(PaperQType.GroupType.Training.equals(groupType)){
|
||||
PaperExceptionAssert.PdValid.assertTrue(!PaperQType.GroupType.Training.equals(groupType),"不支持查询实训题数量");
|
||||
// PaperExceptionAssert.PdValid.assertTrue(!PaperQType.GroupType.Training.equals(groupType),"不支持查询实训题数量");
|
||||
return training2PublishService.queryCountForLabel(orgId,subType.name().toUpperCase(),tags);
|
||||
}
|
||||
return 0L;
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package club.joylink.rtss.services.training2;
|
||||
|
||||
import club.joylink.rtss.constants.BusinessConsts;
|
||||
import club.joylink.rtss.dao.PublishedTraining2DAO;
|
||||
import club.joylink.rtss.entity.training2.PublishedTraining2;
|
||||
import club.joylink.rtss.entity.training2.PublishedTraining2Example;
|
||||
@ -7,6 +8,7 @@ import club.joylink.rtss.entity.training2.PublishedTraining2WithBLOBs;
|
||||
import club.joylink.rtss.exception.BusinessException;
|
||||
import club.joylink.rtss.exception.BusinessExceptionAssert;
|
||||
import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
|
||||
import club.joylink.rtss.util.JsonUtils;
|
||||
import club.joylink.rtss.vo.client.PageVO;
|
||||
import club.joylink.rtss.vo.training2.publish.*;
|
||||
import com.github.pagehelper.Page;
|
||||
@ -19,9 +21,7 @@ import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -41,6 +41,40 @@ public class Training2PublishService {
|
||||
return null != find && find.size() > 0 ? find.get(0) : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据组织,类型(单操作,实操),标签获取对应的数量
|
||||
|
||||
*/
|
||||
public Long queryCountForLabel(Long orgId,String type,String label){
|
||||
BusinessExceptionAssertEnum.ARGUMENT_ILLEGAL.assertTrue(Objects.nonNull(orgId),"组织信息不能为空");
|
||||
BusinessExceptionAssertEnum.ARGUMENT_ILLEGAL.assertTrue(Objects.nonNull(type),"查询类型信息不能为空");
|
||||
|
||||
PublishedTraining2Example example = new PublishedTraining2Example();
|
||||
PublishedTraining2Example.Criteria c = example.createCriteria();
|
||||
c.andOrgIdEqualTo(orgId);
|
||||
c.andTypeEqualTo(type);
|
||||
if(Objects.nonNull(label)){
|
||||
c.andLabelJsonLike(String.format("%%%s%%", label));
|
||||
}
|
||||
return this.publishedDao.countByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 组织,类型(单操作,实操) 获取标签
|
||||
*/
|
||||
public Collection<String> findAllLabel(Long orgId, String type){
|
||||
BusinessExceptionAssertEnum.ARGUMENT_ILLEGAL.assertTrue(Objects.nonNull(orgId),"组织信息不能为空");
|
||||
BusinessExceptionAssertEnum.ARGUMENT_ILLEGAL.assertTrue(Objects.nonNull(type),"查询类型信息不能为空");
|
||||
List<String> list = this.publishedDao.selectAllLabel(orgId,type);
|
||||
if(CollectionUtils.isEmpty(list)){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return list.stream().filter(StringUtils::hasText).map(d->{
|
||||
List<String> l = JsonUtils.readCollection(d,List.class,String.class);
|
||||
return l;
|
||||
}).flatMap(d->d.stream()).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
/**
|
||||
* 已发布实训分页列表
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user