1、试题管理

beetlsql3-dev
wgf 2 years ago
parent 389aa6339f
commit ad227034d5

@ -53,4 +53,11 @@ public interface ResourcesQuestionDao extends BaseMapper<ResourcesQuestion>{
List<QuestionSettingDTO> getGroupQuestionTypeCountAndSelectInfo(Long courseInfoId, Long questionSettingId);
/**
* +
* @param query
* @return
*/
PageQuery<ResourcesQuestion> getTestItemManageSystemOAndUniversities(PageQuery query);
}

@ -101,6 +101,14 @@ public class ResourcesQuestion extends BaseEntity{
private AddTypeEnum addType ;
//题库来源
private String addTypeText;
/**
* 1 2
*/
private String sourceType;
/**
*
*/
@ -308,6 +316,30 @@ public class ResourcesQuestion extends BaseEntity{
this.addType = addType;
}
public String getAddTypeText() {
return addTypeText;
}
public void setAddTypeText(String addTypeText) {
this.addTypeText = addTypeText;
}
public Date getAddTime() {
return addTime;
}
public void setAddTime(Date addTime) {
this.addTime = addTime;
}
public String getSourceType() {
return sourceType;
}
public void setSourceType(String sourceType) {
this.sourceType = sourceType;
}
/**,
*@return
*/

@ -121,6 +121,12 @@ public class ResourcesQuestionService extends CoreBaseService<ResourcesQuestion>
return ret;
}
public PageQuery<ResourcesQuestion> getTestItemManageSystemOAndUniversities(PageQuery query) {
PageQuery ret = resourcesQuestionDao.getTestItemManageSystemOAndUniversities(query);
queryListAfter(ret.getList());
return ret;
}
public void deleteResourcesQuestion(String ids) {
String courseInfoIds = "";
List<ResourcesQuestion> list = getByIds(ids);

@ -1,6 +1,7 @@
package com.ibeetl.jlw.web;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.jlw.Interceptor.GetFile;
import cn.jlw.Interceptor.RFile;
@ -22,6 +23,7 @@ import com.ibeetl.jlw.enums.MatchTypeEnum;
import com.ibeetl.jlw.enums.QuestionBusinessTypeEnum;
import com.ibeetl.jlw.service.CourseInfoService;
import com.ibeetl.jlw.service.ResourcesQuestionService;
import com.ibeetl.jlw.service.TeacherOpenCourseMergeResourcesQuestionService;
import com.ibeetl.jlw.service.UniversitiesCollegesJurisdictionCurriculumResourcesService;
import com.ibeetl.jlw.web.query.CourseInfoQuery;
import com.ibeetl.jlw.web.query.ResourcesQuestionQuery;
@ -61,20 +63,26 @@ import static com.ibeetl.admin.core.util.StreamUtils.listJoin;
*/
@Controller
public class ResourcesQuestionController{
public class ResourcesQuestionController {
private final Log log = LogFactory.getLog(this.getClass());
private static final String MODEL = "/jlw/resourcesQuestion";
private static final String API = "/api/resourcesQuestion";
@Autowired private ResourcesQuestionService resourcesQuestionService;
@Autowired
private ResourcesQuestionService resourcesQuestionService;
@Autowired
FileService fileService;
@Autowired private CourseInfoService courseInfoService;
@Autowired private UniversitiesCollegesJurisdictionCurriculumResourcesService universitiesCollegesJurisdictionCurriculumResourcesService;
@Autowired
private CourseInfoService courseInfoService;
@Autowired
private UniversitiesCollegesJurisdictionCurriculumResourcesService universitiesCollegesJurisdictionCurriculumResourcesService;
@Autowired
private TeacherOpenCourseMergeResourcesQuestionService teacherOpenCourseMergeResourcesQuestionService;
/* 前端接口 */
@ -86,7 +94,7 @@ public class ResourcesQuestionController{
@Function("resourcesQuestion.query")
@ResponseBody
public ModelAndView index() {
ModelAndView view = new ModelAndView("/jlw/resourcesQuestion/index.html") ;
ModelAndView view = new ModelAndView("/jlw/resourcesQuestion/index.html");
view.addObject("search", ResourcesQuestionQuery.class.getName());
return view;
}
@ -106,18 +114,18 @@ public class ResourcesQuestionController{
@ResponseBody
public ModelAndView add(Long resourcesQuestionId) {
ModelAndView view = new ModelAndView("/jlw/resourcesQuestion/add.html");
if(null != resourcesQuestionId){
if (null != resourcesQuestionId) {
ResourcesQuestion resourcesQuestion = resourcesQuestionService.queryById(resourcesQuestionId);
view.addObject("resourcesQuestion", resourcesQuestion);
CourseInfo courseInfo = courseInfoService.queryById(resourcesQuestion.getCourseInfoId());
if(courseInfo != null && courseInfo.getCourseInfoParentId() != null){ //父节点不为空时 说明当前属于是子节点 否则是父节点
if (courseInfo != null && courseInfo.getCourseInfoParentId() != null) { //父节点不为空时 说明当前属于是子节点 否则是父节点
view.addObject("courseInfoId", courseInfo.getCourseInfoParentId());
view.addObject("childNode", courseInfo.getCourseInfoId());
}else {
view.addObject("courseInfoId", courseInfo != null?courseInfo.getCourseInfoId():null);
} else {
view.addObject("courseInfoId", courseInfo != null ? courseInfo.getCourseInfoId() : null);
view.addObject("childNode", null);
}
}else {
} else {
view.addObject("resourcesQuestion", new ResourcesQuestion());
view.addObject("courseInfoId", null);
view.addObject("childNode", null);
@ -138,7 +146,7 @@ public class ResourcesQuestionController{
@GetMapping(MODEL + "/questionBank.do")
@Function("resourcesQuestion.query")
@ResponseBody
public ModelAndView questionBank(Long courseInfoId,Long resourcesQuestionId,Integer type) {
public ModelAndView questionBank(Long courseInfoId, Long resourcesQuestionId, Integer type) {
ModelAndView view = new ModelAndView("/jlw/previewPage/questionBank.html");
view.addObject("courseInfoId", courseInfoId);
view.addObject("resourcesQuestionId", resourcesQuestionId);
@ -148,7 +156,7 @@ public class ResourcesQuestionController{
@PostMapping(API + "/list.do")
@ResponseBody
public JsonResult<PageQuery> listDo(ResourcesQuestionQuery condition, @SCoreUser CoreUser coreUser){
public JsonResult<PageQuery> listDo(ResourcesQuestionQuery condition, @SCoreUser CoreUser coreUser) {
PageQuery page = condition.getPageQuery();
condition.setQuestionStatus(1);
@ -177,7 +185,7 @@ public class ResourcesQuestionController{
@PostMapping(MODEL + "/list.json")
@Function("resourcesQuestion.query")
@ResponseBody
public JsonResult<PageQuery> list(ResourcesQuestionQuery condition, @SCoreUser CoreUser coreUser){
public JsonResult<PageQuery> list(ResourcesQuestionQuery condition, @SCoreUser CoreUser coreUser) {
PageQuery page = condition.getPageQuery();
if (coreUser.isUniAdmin()) {
@ -194,17 +202,21 @@ public class ResourcesQuestionController{
// 如果为空字符串,那么代表这个学校,还没有授权的课程,所以是不会显示任何东西的。
condition.setCourseInfoIds(StrUtil.blankToDefault(ids, "未授权应用"));
}
resourcesQuestionService.queryByCondition(page);
if (coreUser.isAdmin()) {
resourcesQuestionService.getTestItemManageSystemOAndUniversities(page);
} else {
resourcesQuestionService.queryByCondition(page);
}
return JsonResult.success(page);
}
@PostMapping(MODEL + "/add.json")
@Function("resourcesQuestion.add")
@ResponseBody
public JsonResult add(@Validated(ValidateConfig.ADD.class)ResourcesQuestion resourcesQuestion, BindingResult result, @SCoreUser CoreUser coreUser){
if(result.hasErrors()){
public JsonResult add(@Validated(ValidateConfig.ADD.class) ResourcesQuestion resourcesQuestion, BindingResult result, @SCoreUser CoreUser coreUser) {
if (result.hasErrors()) {
return JsonResult.failMessage(result);
}else{
} else {
Long courseInfoId = resourcesQuestion.getCourseInfoId();
Integer questionType = resourcesQuestion.getQuestionType();
BigDecimal questionScore = resourcesQuestion.getQuestionScore();
@ -217,36 +229,35 @@ public class ResourcesQuestionController{
String questionOptionE = resourcesQuestion.getQuestionOptionE();
String questionAnswer = resourcesQuestion.getQuestionAnswer();
questionAnswer = resourcesQuestionService.answerFormat(questionType,questionAnswer);//格式化
questionAnswer = resourcesQuestionService.answerFormat(questionType, questionAnswer);//格式化
String m = "";
if(StringUtils.isNotBlank(questionAnswer)){
m = resourcesQuestionService.judge(questionType,questionOptionA,questionOptionB,questionOptionC,questionOptionD,questionOptionE,questionAnswer);
if (StringUtils.isNotBlank(questionAnswer)) {
m = resourcesQuestionService.judge(questionType, questionOptionA, questionOptionB, questionOptionC, questionOptionD, questionOptionE, questionAnswer);
}
if(null == courseInfoId){
if (null == courseInfoId) {
return JsonResult.failMessage("添加失败,请选择相应的章节");
}else if(null == questionType){
} else if (null == questionType) {
return JsonResult.failMessage("添加失败,请选择题型");
}else if(null == questionScore){
} else if (null == questionScore) {
return JsonResult.failMessage("添加失败,请填写分值");
}else if(StringUtils.isBlank(questionStem)){
} else if (StringUtils.isBlank(questionStem)) {
return JsonResult.failMessage("添加失败,请填写题干");
}else if(StringUtils.isBlank(questionAnswer)){
} else if (StringUtils.isBlank(questionAnswer)) {
return JsonResult.failMessage("添加失败,请填写答案");
}else if(StringUtils.isNotBlank(m)){
return JsonResult.failMessage("添加失败,"+m);
}else {
} else if (StringUtils.isNotBlank(m)) {
return JsonResult.failMessage("添加失败," + m);
} else {
ResourcesQuestion rq = new ResourcesQuestion();
rq.setQuestionStem(questionStem);
if(resourcesQuestionService.getValues(rq).size()>0){
if (resourcesQuestionService.getValues(rq).size() > 0) {
return JsonResult.failMessage("添加失败,题干重复");
}
if (coreUser.isAdmin()) {
resourcesQuestion.setAddType(AddTypeEnum.ADMIN_ADD);
}
else {
} else {
resourcesQuestion.setAddType(AddTypeEnum.FACULTY_ADD);
}
resourcesQuestion.setOrgId(coreUser.getOrgId());
@ -265,16 +276,25 @@ public class ResourcesQuestionController{
@PostMapping(MODEL + "/putOnShelves.json")
@Function("resourcesQuestion.edit")
@ResponseBody
public JsonResult<String> putOnShelves(@Validated(ValidateConfig.UPDATE.class) ResourcesQuestion resourcesQuestion, BindingResult result) {
if(result.hasErrors()){
public JsonResult<String> putOnShelves(@Validated(ValidateConfig.UPDATE.class) ResourcesQuestion resourcesQuestion, BindingResult result) {
if (result.hasErrors()) {
return JsonResult.failMessage(result);
}else {
boolean success = resourcesQuestionService.edit(resourcesQuestion);
if (success) {
} else {
if (ObjectUtil.equals(resourcesQuestion.getSourceType(), 1)) {
if (ObjectUtil.isEmpty(resourcesQuestion.getResourcesQuestionId())) {
return JsonResult.failMessage("更新失败");
}
teacherOpenCourseMergeResourcesQuestionService.batchEditUpDownStatus(resourcesQuestion.getResourcesQuestionId().toString(), resourcesQuestion.getQuestionStatus());
return JsonResult.success();
} else {
return JsonResult.failMessage("更新失败");
boolean success = resourcesQuestionService.edit(resourcesQuestion);
if (success) {
return JsonResult.success();
} else {
return JsonResult.failMessage("更新失败");
}
}
}
}
@ -282,10 +302,10 @@ public class ResourcesQuestionController{
@PostMapping(MODEL + "/edit.json")
@Function("resourcesQuestion.edit")
@ResponseBody
public JsonResult<String> update(@Validated(ValidateConfig.UPDATE.class) ResourcesQuestion resourcesQuestion, BindingResult result, @SCoreUser CoreUser coreUser) {
if(result.hasErrors()){
public JsonResult<String> update(@Validated(ValidateConfig.UPDATE.class) ResourcesQuestion resourcesQuestion, BindingResult result, @SCoreUser CoreUser coreUser) {
if (result.hasErrors()) {
return JsonResult.failMessage(result);
}else {
} else {
// 验证是否有操作该数据的权限
validateRole(resourcesQuestion, coreUser);
@ -297,51 +317,51 @@ public class ResourcesQuestionController{
String questionOptionA = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionA());
resourcesQuestion.setQuestionOptionA(questionOptionA);
String questionOptionB = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionB());
String questionOptionB = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionB());
resourcesQuestion.setQuestionOptionB(questionOptionB);
String questionOptionC = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionC());
String questionOptionC = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionC());
resourcesQuestion.setQuestionOptionC(questionOptionC);
String questionOptionD = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionD());
String questionOptionD = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionD());
resourcesQuestion.setQuestionOptionD(questionOptionD);
String questionOptionE = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionE());
String questionOptionE = resourcesQuestionService.formatQuestion(resourcesQuestion.getQuestionOptionE());
resourcesQuestion.setQuestionOptionE(questionOptionE);
String questionAnswer = resourcesQuestion.getQuestionAnswer();
questionAnswer = resourcesQuestionService.answerFormat(questionType,questionAnswer);//格式化
questionAnswer = resourcesQuestionService.answerFormat(questionType, questionAnswer);//格式化
String m = "";
if(StringUtils.isNotBlank(questionAnswer)){
m = resourcesQuestionService.judge(questionType,questionOptionA,questionOptionB,questionOptionC,questionOptionD,questionOptionE,questionAnswer);
if (StringUtils.isNotBlank(questionAnswer)) {
m = resourcesQuestionService.judge(questionType, questionOptionA, questionOptionB, questionOptionC, questionOptionD, questionOptionE, questionAnswer);
}
if(null == courseInfoId){
if (null == courseInfoId) {
return JsonResult.failMessage("添加失败,请选择相应的章节");
}else if(null == questionType){
} else if (null == questionType) {
return JsonResult.failMessage("添加失败,请选择题型");
}else if(null == questionScore){
} else if (null == questionScore) {
return JsonResult.failMessage("添加失败,请填写分值");
}else if(StringUtils.isBlank(questionStem)){
} else if (StringUtils.isBlank(questionStem)) {
return JsonResult.failMessage("添加失败,请填写题干");
}else if(StringUtils.isBlank(questionAnswer)){
} else if (StringUtils.isBlank(questionAnswer)) {
return JsonResult.failMessage("添加失败,请填写答案");
}else if(StringUtils.isNotBlank(m)){
return JsonResult.failMessage("添加失败,"+m);
}else {
} else if (StringUtils.isNotBlank(m)) {
return JsonResult.failMessage("添加失败," + m);
} else {
ResourcesQuestion rq = new ResourcesQuestion();
rq.setQuestionStem(questionStem);
List<ResourcesQuestion> resourcesQuestionList = resourcesQuestionService.getValues(rq);
if(resourcesQuestionList.size()>0){
for(int i=0;i<resourcesQuestionList.size();i++){
if (resourcesQuestionList.get(i).getResourcesQuestionId().equals(resourcesQuestion.getResourcesQuestionId())){
if (resourcesQuestionList.size() > 0) {
for (int i = 0; i < resourcesQuestionList.size(); i++) {
if (resourcesQuestionList.get(i).getResourcesQuestionId().equals(resourcesQuestion.getResourcesQuestionId())) {
resourcesQuestionList.remove(i);
i--;
}
}
if(resourcesQuestionList.size()>0){
if (resourcesQuestionList.size() > 0) {
return JsonResult.failMessage("添加失败,题干重复");
}
}
@ -362,12 +382,13 @@ public class ResourcesQuestionController{
/**
*
*
* @param resourcesQuestion
* @param coreUser
*/
private void validateRole(ResourcesQuestion resourcesQuestion, CoreUser coreUser) {
// 如果不是超管的话
if(!coreUser.isAdmin()) {
if (!coreUser.isAdmin()) {
Assert.isTrue(null != resourcesQuestion.getOrgId() && coreUser.getOrgId().equals(resourcesQuestion.getOrgId()), "只能修改自己院校的数据!");
}
}
@ -376,42 +397,42 @@ public class ResourcesQuestionController{
@GetMapping(MODEL + "/view.json")
@Function("resourcesQuestion.query")
@ResponseBody
public JsonResult<ResourcesQuestion>queryInfo(Long resourcesQuestionId) {
ResourcesQuestion resourcesQuestion = resourcesQuestionService.queryById( resourcesQuestionId);
return JsonResult.success(resourcesQuestion);
public JsonResult<ResourcesQuestion> queryInfo(Long resourcesQuestionId) {
ResourcesQuestion resourcesQuestion = resourcesQuestionService.queryById(resourcesQuestionId);
return JsonResult.success(resourcesQuestion);
}
@GetMapping(MODEL + "/getValues.json")
@ResponseBody
public JsonResult<List<ResourcesQuestion>>getValues(ResourcesQuestionQuery param) {
List<ResourcesQuestion>list = resourcesQuestionService.getValues(param);
return JsonResult.success(list);
public JsonResult<List<ResourcesQuestion>> getValues(ResourcesQuestionQuery param) {
List<ResourcesQuestion> list = resourcesQuestionService.getValues(param);
return JsonResult.success(list);
}
//批量换章节
@PostMapping(MODEL + "/changAll.json")
@ResponseBody
public JsonResult changAll(Long oldCourseInfoId,Long newCourseInfoId) {
public JsonResult changAll(Long oldCourseInfoId, Long newCourseInfoId) {
ResourcesQuestion resourcesQuestion = new ResourcesQuestion();
resourcesQuestion.setCourseInfoId(oldCourseInfoId);
List<ResourcesQuestion> resourcesQuestionList = resourcesQuestionService.getValues(resourcesQuestion);
List<ResourcesQuestion> updateResourcesQuestionList = new ArrayList<>();
if(null != resourcesQuestionList && resourcesQuestionList.size()>0){
for(int i=0;i<resourcesQuestionList.size();i++){
if (null != resourcesQuestionList && resourcesQuestionList.size() > 0) {
for (int i = 0; i < resourcesQuestionList.size(); i++) {
ResourcesQuestion newResourcesQuestion = new ResourcesQuestion();
newResourcesQuestion.setResourcesQuestionId(resourcesQuestionList.get(i).getResourcesQuestionId());
newResourcesQuestion.setCourseInfoId(newCourseInfoId);
updateResourcesQuestionList.add(newResourcesQuestion);
}
}
if(updateResourcesQuestionList.size()>0){
resourcesQuestionService.changAll(updateResourcesQuestionList,oldCourseInfoId,newCourseInfoId);
if (updateResourcesQuestionList.size() > 0) {
resourcesQuestionService.changAll(updateResourcesQuestionList, oldCourseInfoId, newCourseInfoId);
//移除缓存
courseInfoService.flushCache(oldCourseInfoId);
courseInfoService.flushCache(newCourseInfoId);
}
return JsonResult.success();
return JsonResult.success();
}
@ -419,8 +440,8 @@ public class ResourcesQuestionController{
@Function("resourcesQuestion.delete")
@ResponseBody
public JsonResult delete(String ids, @SCoreUser CoreUser coreUser) {
List<ResourcesQuestion>list = resourcesQuestionService.getByIds(ids);
for(int i=0;null != list && i<list.size();i++){
List<ResourcesQuestion> list = resourcesQuestionService.getByIds(ids);
for (int i = 0; null != list && i < list.size(); i++) {
// 验证是否有操作该数据的权限
validateRole(list.get(i), coreUser);
//移除缓存
@ -438,7 +459,7 @@ public class ResourcesQuestionController{
XSSFWorkbook workbook = null;
InputStream is = null;
try {
is = new FileInputStream(GetFile.p + File.separator +"filesystem"+ File.separator +"template"+ File.separator+ "题库导入模板.xlsx");
is = new FileInputStream(GetFile.p + File.separator + "filesystem" + File.separator + "template" + File.separator + "题库导入模板.xlsx");
workbook = new XSSFWorkbook(is);
@ -551,7 +572,7 @@ public class ResourcesQuestionController{
//workbook将Excel写入到response的输出流中供页面下载
workbook.write(response.getOutputStream());
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
@ -569,6 +590,7 @@ public class ResourcesQuestionController{
/**
*
*
* @param offset
* @param sheet
* @param rowNum
@ -586,7 +608,7 @@ public class ResourcesQuestionController{
// sheet.addValidationData(cacse);
XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet)sheet);
XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet) sheet);
XSSFDataValidationConstraint dvConstraint = (XSSFDataValidationConstraint) dvHelper.createFormulaListConstraint("INDIRECT($" + offset + "$" + rowNum + ")");
int firstRow = rowNum - 1;
int lastRow = rowNum - 1;
@ -599,12 +621,12 @@ public class ResourcesQuestionController{
}
/**
* formula
* @param offset 0A1B
* @param rowId
* formula
*
* @param offset 0A1B
* @param rowId
* @param colCount
* @return 1,1,10. B1-K1 $B$1:$K$1
*
*/
public static String getRange(int offset, int rowId, int colCount) {
char start = (char) ('A' + offset);
@ -637,57 +659,57 @@ public class ResourcesQuestionController{
//导入模板信息
@PostMapping(MODEL + "/importTemplate.json")
@ResponseBody
public JsonResult importTemplate(@RFile FileEntity fileEntity,@SCoreUser CoreUser coreUser) {
return resourcesQuestionService.importTemplate(fileEntity,coreUser);
public JsonResult importTemplate(@RFile FileEntity fileEntity, @SCoreUser CoreUser coreUser) {
return resourcesQuestionService.importTemplate(fileEntity, coreUser);
}
//查询客观题树结构
@GetMapping(MODEL + "/getTreeByCourseLabelTypes.json")
@ResponseBody
public JsonResult<List<CourseInfo>>getTreeByCourseLabelTypes(String courseLabelTypes,Long competitionId,String ct1QuestionIds,Long examId,String et1QuestionIds) {
List<CourseInfo> courseInfoList= resourcesQuestionService.getTreeByCourseLabelTypes(courseLabelTypes);
public JsonResult<List<CourseInfo>> getTreeByCourseLabelTypes(String courseLabelTypes, Long competitionId, String ct1QuestionIds, Long examId, String et1QuestionIds) {
List<CourseInfo> courseInfoList = resourcesQuestionService.getTreeByCourseLabelTypes(courseLabelTypes);
Map<Long,Integer>countMap = new HashMap<>();
Map<Long, Integer> countMap = new HashMap<>();
String courseInfoIds = "";
String childrenCourseInfoIds = "";
if(null != competitionId || null != examId){
List<CourseInfo> courseInfos = resourcesQuestionService.getTreeByParam(courseLabelTypes,competitionId,ct1QuestionIds,examId,et1QuestionIds);
for(int i=0;null != courseInfos && i<courseInfos.size();i++){
courseInfoIds += courseInfos.get(i).getCourseInfoId()+",";
if (null != competitionId || null != examId) {
List<CourseInfo> courseInfos = resourcesQuestionService.getTreeByParam(courseLabelTypes, competitionId, ct1QuestionIds, examId, et1QuestionIds);
for (int i = 0; null != courseInfos && i < courseInfos.size(); i++) {
courseInfoIds += courseInfos.get(i).getCourseInfoId() + ",";
List<CourseInfo> childrenCourseInfos = courseInfos.get(i).takeChildren();
for(int j=0;null != childrenCourseInfos && j<childrenCourseInfos.size();j++){
childrenCourseInfoIds += childrenCourseInfos.get(j).getCourseInfoId()+",";
countMap.put(childrenCourseInfos.get(j).getCourseInfoId(),childrenCourseInfos.get(j).takeChildren().size());
for (int j = 0; null != childrenCourseInfos && j < childrenCourseInfos.size(); j++) {
childrenCourseInfoIds += childrenCourseInfos.get(j).getCourseInfoId() + ",";
countMap.put(childrenCourseInfos.get(j).getCourseInfoId(), childrenCourseInfos.get(j).takeChildren().size());
}
}
}
for(int i=0;i<courseInfoList.size();i++){
for (int i = 0; i < courseInfoList.size(); i++) {
Integer totalCount = 0;
Integer usedTotalCount = 0;
List<CourseInfo> childrenList= courseInfoList.get(i).takeChildren();
for(int j=0;j<childrenList.size();j++){
List<CourseInfo> childrenList = courseInfoList.get(i).takeChildren();
for (int j = 0; j < childrenList.size(); j++) {
Integer count = childrenList.get(j).takeChildren().size();
Integer usedCount = countMap.get(childrenList.get(j).getCourseInfoId());
totalCount += count;
childrenList.get(j).set("totalCount",count);
if(null != usedCount){
childrenList.get(j).set("totalCount", count);
if (null != usedCount) {
usedTotalCount += usedCount;
childrenList.get(j).set("usedCount",usedCount);
}else {
childrenList.get(j).set("usedCount",0);
childrenList.get(j).set("usedCount", usedCount);
} else {
childrenList.get(j).set("usedCount", 0);
}
}
courseInfoList.get(i).set("totalCount",totalCount);
courseInfoList.get(i).set("usedCount",usedTotalCount);
courseInfoList.get(i).set("totalCount", totalCount);
courseInfoList.get(i).set("usedCount", usedTotalCount);
}
Map<String,Object>map = new HashMap<>();
map.put("courseInfoIds",courseInfoIds);
map.put("childrenCourseInfoIds",childrenCourseInfoIds);
map.put("data",courseInfoList);
Map<String, Object> map = new HashMap<>();
map.put("courseInfoIds", courseInfoIds);
map.put("childrenCourseInfoIds", childrenCourseInfoIds);
map.put("data", courseInfoList);
return JsonResult.successMap(map);
@ -695,7 +717,8 @@ public class ResourcesQuestionController{
/**
*
* @param courseInfoQuery
*
* @param courseInfoQuery
* @return
*/
@PostMapping(MODEL + "/questionTypeGroupInfo.json")
@ -709,8 +732,8 @@ public class ResourcesQuestionController{
* : <br>
* word
*
* @param fileEntityList namefile
* @param coreUser 使IDID
* @param fileEntityList namefile
* @param coreUser 使IDID
* @return {@link JsonResult}
* @Author: lx
* @Date: 2023/1/8 22:49
@ -725,10 +748,10 @@ public class ResourcesQuestionController{
* : <br>
* word
*
* @param fileEntityList namefile
* @param businessType
* @param matchType
* @param coreUser 使IDID
* @param fileEntityList namefile
* @param businessType
* @param matchType
* @param coreUser 使IDID
* @return {@link JsonResult}
* @Author: lx
* @Date: 2023/1/8 22:49
@ -742,7 +765,8 @@ public class ResourcesQuestionController{
/**
* ---
* @param courseInfoQuery
*
* @param courseInfoQuery
* @param coreUser
* @return
*/
@ -755,9 +779,10 @@ public class ResourcesQuestionController{
/**
* ---
*
* @param courseInfoQuery
* @param courseLabelTypePlural
* @param seeAdminAndSelf true
*
* @param courseInfoQuery
* @param courseLabelTypePlural
* @param seeAdminAndSelf true
* @param coreUser
* @return
*/

@ -71,6 +71,10 @@ public class ResourcesQuestionQuery extends PageParam {
private Long courseInfoId_0;
private Long courseInfoId_1;
//题库来源
private String addTypeText;
/**
*
*/
@ -313,4 +317,12 @@ public class ResourcesQuestionQuery extends PageParam {
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public String getAddTypeText() {
return addTypeText;
}
public void setAddTypeText(String addTypeText) {
this.addTypeText = addTypeText;
}
}

@ -541,4 +541,98 @@ getGroupQuestionTypeCountAndSelectInfo
1,3,4
ORDER BY
t.question_type ASC
) z
) z
getTestItemManageSystemOAndUniversities
===
* 试题管理系统+院校
SELECT
@pageTag(){
tt.*
@}
FROM
(
(
SELECT
a.add_time,
'超级管理员' AS add_type_text,
a.course_info_id,
aa.course_info_name AS course_info_name,
ab.course_info_id AS course_info_parent_id,
ab.course_info_name AS course_info_parent_name,
a.org_id,
ac.`NAME` AS org_id_text,
a.question_analysis,
a.question_answer,
a.question_option_a,
a.question_option_b,
a.question_option_c,
a.question_option_d,
a.question_option_e,
a.question_score,
a.question_status,
a.question_stem,
a.question_type,
a.resources_question_id,
a.user_id,
'2' AS source_type
FROM
resources_question a
LEFT JOIN course_info aa ON aa.course_info_id = a.course_info_id
LEFT JOIN course_info ab ON ab.course_info_id = aa.course_info_parent_id
LEFT JOIN core_org ac ON ac.ID = a.org_id
)
UNION ALL
(
SELECT
b.add_time,
bc.`NAME` AS add_type_text,
b.teacher_open_course_merge_course_info_id AS course_info_id,
ba.course_info_name AS course_info_name,
bb.teacher_open_course_id AS course_info_parent_id,
bb.course_info_name AS course_info_parent_name,
b.org_id,
bc.`NAME` AS org_id_text,
b.question_analysis,
b.question_answer,
b.question_option_a,
b.question_option_b,
b.question_option_c,
b.question_option_d,
b.question_option_e,
b.question_score,
b.question_status,
b.question_stem,
b.question_type,
b.teacher_open_course_merge_resources_question_id AS resources_question_id,
b.user_id,
'1' AS source_type
FROM
teacher_open_course_merge_resources_question b
LEFT JOIN teacher_open_course_merge_course_info ba ON ba.teacher_open_course_merge_course_info_id = b.teacher_open_course_merge_course_info_id
LEFT JOIN teacher_open_course_merge_course_info bb ON bb.teacher_open_course_merge_course_info_id = ba.course_info_parent_id
LEFT JOIN core_org bc ON bc.ID = b.org_id
WHERE
b.question_status != 0
)
) tt
WHERE
1 = 1
@ // 课程ID
@if(!isEmpty(courseInfoId_0)){
AND tt.course_info_parent_id = #courseInfoId_0#
@}
@ // 开课题目配置ID
@if(!isEmpty(courseInfoId_1)){
AND tt.course_info_id = #courseInfoId_1#
@}
@if(!isEmpty(addTypeText)){
and tt.add_type_text like #'%'+addTypeText+'%'#
@}
@if(!isEmpty(questionStem)){
and tt.question_stem like #'%'+questionStem+'%'#
@}
order by tt.add_time desc
Loading…
Cancel
Save