|
|
@@ -0,0 +1,938 @@
|
|
|
+package com.ssj.service.conch.teacher.service.impl;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import com.ssj.framework.core.util.PropertiesUtil;
|
|
|
+import com.ssj.service.conch.teacher.dto.NewMyInfoDto;
|
|
|
+import com.ssj.service.mapper.LibManagerMapper;
|
|
|
+import com.ssj.service.weixin.library.dto.SubjectMyInfoDto;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.Page;
|
|
|
+import org.springframework.data.domain.Pageable;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import com.alibaba.dubbo.config.annotation.Service;
|
|
|
+import com.ssj.bean.kmt.kmt.domain.KmtExerciseQuestionKnow;
|
|
|
+import com.ssj.bean.kmt.kmt.domain.KmtHomeworkWrongQuestion;
|
|
|
+import com.ssj.bean.sys.homework.domain.Homework;
|
|
|
+import com.ssj.bean.sys.homework.domain.HomeworkHowDetail;
|
|
|
+import com.ssj.bean.sys.homework.domain.HomeworkPicture;
|
|
|
+import com.ssj.bean.sys.organization.domain.OrgTeacher;
|
|
|
+import com.ssj.bean.sys.problem.domain.ProblemPicture;
|
|
|
+import com.ssj.bean.weixin.libmy.domain.LibVip;
|
|
|
+import com.ssj.bean.weixin.libmy.domain.LibVipBind;
|
|
|
+import com.ssj.bean.weixin.libmy.domain.TbLibJoin;
|
|
|
+import com.ssj.bean.weixin.libmy.domain.TbLibManager;
|
|
|
+import com.ssj.bean.weixin.libmy.domain.TbLibManagerAudit;
|
|
|
+import com.ssj.bean.weixin.user.domain.User;
|
|
|
+import com.ssj.bean.weixin.zyb.domain.ZuoybKnowHowDetails;
|
|
|
+import com.ssj.bean.weixin.zyb.domain.ZuoybKnowHowDetailsSort;
|
|
|
+import com.ssj.dao.sys.problem.dao.ProblemPictureDao;
|
|
|
+import com.ssj.dao.sys.problem.dao.ProblemPictureQueryDao;
|
|
|
+import com.ssj.dao.weixin.library.dao.LibManagerAuditDao;
|
|
|
+import com.ssj.dao.weixin.library.dao.LibVipBindDao;
|
|
|
+import com.ssj.dao.weixin.library.dao.LibVipDao;
|
|
|
+import com.ssj.dao.weixin.zuoyb.dao.ZuoybQueryDao;
|
|
|
+
|
|
|
+import com.ssj.framework.core.security.exception.CommonException;
|
|
|
+import com.ssj.framework.core.util.Constant;
|
|
|
+import com.ssj.framework.core.util.ResponseEntity;
|
|
|
+import com.ssj.framework.core.util.StringUtil;
|
|
|
+import com.ssj.framework.weixin.util.DateUtil;
|
|
|
+import com.ssj.service.conch.teacher.dto.KownHowDto;
|
|
|
+import com.ssj.service.conch.teacher.dto.MyInfoDto;
|
|
|
+import com.ssj.service.conch.teacher.request.teacherorg.AnsweredProblemReq;
|
|
|
+import com.ssj.service.conch.teacher.request.teacherorg.CorrectRequest;
|
|
|
+import com.ssj.service.conch.teacher.request.teacherorg.CorrectedPictureUrlRequest;
|
|
|
+import com.ssj.service.conch.teacher.request.teacherorg.HomeworkReportReq;
|
|
|
+import com.ssj.service.conch.teacher.request.teacherorg.HomeworkTaskReq;
|
|
|
+import com.ssj.service.conch.teacher.request.teacherorg.KnowListReq;
|
|
|
+import com.ssj.service.conch.teacher.request.teacherorg.OrganizationListReq;
|
|
|
+import com.ssj.service.conch.common.request.PageReq;
|
|
|
+import com.ssj.service.conch.teacher.request.teacherorg.SaveAnswerReq;
|
|
|
+import com.ssj.service.conch.teacher.request.teacherorg.SaveInfoReq;
|
|
|
+import com.ssj.service.conch.teacher.request.teacherorg.SwipeBindingReq;
|
|
|
+import com.ssj.service.conch.teacher.service.TeacherOrgService;
|
|
|
+import com.ssj.service.conch.teacher.service.TeacherService;
|
|
|
+import com.ssj.service.kmt.dto.ExerciseBookDto;
|
|
|
+import com.ssj.service.kmt.dto.ExerciseQuestionAnswer4CorrectDTO;
|
|
|
+import com.ssj.service.kmt.enums.HomeworkWrongQuestionTypeEnum;
|
|
|
+import com.ssj.service.kmt.request.AnswerSearchRequest;
|
|
|
+import com.ssj.service.kmt.request.ExerciseConditionRequest;
|
|
|
+import com.ssj.service.kmt.request.WrongQuestionRequest;
|
|
|
+import com.ssj.service.kmt.service.KmtCorrectHomeworkService;
|
|
|
+import com.ssj.service.kmt.service.KmtExerciseBookCourseService;
|
|
|
+import com.ssj.service.kmt.service.KmtExerciseQuestionKnowService;
|
|
|
+import com.ssj.service.kmt.service.KmtExerciseQuestionService;
|
|
|
+import com.ssj.service.kmt.service.KmtHomeworkWrongQuestionService;
|
|
|
+import com.ssj.service.sys.homework.service.HomeworkHowDetailsService;
|
|
|
+import com.ssj.service.sys.homework.service.HomeworkPictureService;
|
|
|
+import com.ssj.service.sys.homework.service.HomeworkService;
|
|
|
+import com.ssj.service.sys.organization.service.OrgTeacherService;
|
|
|
+import com.ssj.service.sys.problem.service.IBanbenDetailService;
|
|
|
+import com.ssj.service.sys.problem.service.ProblemPictureService;
|
|
|
+import com.ssj.service.weixin.library.service.IBookManagerService;
|
|
|
+import com.ssj.service.weixin.library.service.ILibJoinService;
|
|
|
+import com.ssj.service.weixin.library.service.ILibVipService;
|
|
|
+import com.ssj.service.weixin.library.service.LibManagerAuditService;
|
|
|
+import com.ssj.service.weixin.library.service.LibVipBindService;
|
|
|
+import com.ssj.service.weixin.user.service.UserService;
|
|
|
+import com.ssj.service.weixin.zuoyb.service.ZuoybKnowHowDetailsService;
|
|
|
+import com.ssj.service.weixin.zuoyb.service.ZuoybKnowHowDetailsSortService;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author Mount Liu
|
|
|
+ * @version 2019/2/28
|
|
|
+ */
|
|
|
+@Service(version="1.0")
|
|
|
+@Transactional
|
|
|
+public class TeacherOrgServiceImpl implements TeacherOrgService {
|
|
|
+
|
|
|
+ private Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LibManagerAuditService libManagerAuditService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LibManagerAuditDao libManagerAuditDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IBookManagerService iBookManagerService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private OrgTeacherService orgTeacherService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LibVipBindDao libVipBindDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LibVipBindService libVipBindService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ProblemPictureService problemPictureService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ProblemPictureDao problemPictureDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ProblemPictureQueryDao problemPictureQueryDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ZuoybQueryDao zuoybQueryDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ILibVipService libVipService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ZuoybKnowHowDetailsService zuoybKnowHowDetailsService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LibVipDao libVipDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserService userService;
|
|
|
+ @Autowired
|
|
|
+ private HomeworkPictureService homeworkPictureService;
|
|
|
+ @Autowired
|
|
|
+ private HomeworkService homeworkService;
|
|
|
+ @Autowired
|
|
|
+ private TeacherService teacherService;
|
|
|
+ @Autowired
|
|
|
+ private KmtCorrectHomeworkService kmtCorrectHomeworkService;
|
|
|
+ @Autowired
|
|
|
+ private KmtExerciseBookCourseService kmtExerciseBookCourseService;
|
|
|
+ @Autowired
|
|
|
+ private KmtExerciseQuestionService kmtExerciseQuestionService;
|
|
|
+ @Autowired
|
|
|
+ private KmtHomeworkWrongQuestionService kmtHomeworkWrongQuestionService;
|
|
|
+ @Autowired
|
|
|
+ private HomeworkHowDetailsService homeworkHowDetailsService;
|
|
|
+ @Autowired
|
|
|
+ private KmtExerciseQuestionKnowService kmtExerciseQuestionKnowService;
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IBanbenDetailService banbenDetailService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ZuoybKnowHowDetailsSortService zuoybKnowHowDetailsSortService;
|
|
|
+ @Autowired
|
|
|
+ private IBookManagerService bookManagerService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ILibJoinService libJoinService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LibManagerMapper libManagerMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity saveInfo(String userId, SaveInfoReq req) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ //机构信息
|
|
|
+ OrgTeacher orgTeacher = orgTeacherService.getById(req.getOrgId());
|
|
|
+ TbLibManager tbLibManager = iBookManagerService.findAllByUserIdAndType(userId, 10);
|
|
|
+ if (tbLibManager == null) {
|
|
|
+ tbLibManager = new TbLibManager();
|
|
|
+ tbLibManager.setState(2);
|
|
|
+ tbLibManager.setType(10);
|
|
|
+ tbLibManager.setCreateTime(new Date());
|
|
|
+ tbLibManager.setUserId(userId);
|
|
|
+ /*tbLibManager.setName(req.getName());
|
|
|
+ tbLibManager.setSex(req.getSex());
|
|
|
+ tbLibManager.setTelephone(req.getTelephone());
|
|
|
+ tbLibManager.setCourseName(req.getCourse());
|
|
|
+ tbLibManager.setAddress(orgTeacher.getAddress());
|
|
|
+ tbLibManager.setOrgId(req.getOrgId());
|
|
|
+ tbLibManager.setOrgName(orgTeacher.getName());
|
|
|
+ tbLibManager.setCertification(req.getCertification());
|
|
|
+ tbLibManager.setIdFace(req.getIdFace());
|
|
|
+ tbLibManager.setIdCon(req.getIdCon());
|
|
|
+ User user = userService.getById(userId);
|
|
|
+ tbLibManager.settPhoto(user.getPhoto());*/
|
|
|
+ //更新头像,使用用户选择的头像或者用户微信头像
|
|
|
+ if (StringUtil.isBlank(req.getPhoto())) {
|
|
|
+ User user = userService.getById(userId);
|
|
|
+ tbLibManager.settPhoto(user.getPhoto());
|
|
|
+ } else {
|
|
|
+ tbLibManager.settPhoto(req.getPhoto());
|
|
|
+ }
|
|
|
+ iBookManagerService.save(tbLibManager);
|
|
|
+ } else {
|
|
|
+ //更新头像
|
|
|
+ if (StringUtil.isNotBlank(req.getPhoto())) {
|
|
|
+ tbLibManager.settPhoto(req.getPhoto());
|
|
|
+ iBookManagerService.save(tbLibManager);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ TbLibManagerAudit tbLibManagerAudit = new TbLibManagerAudit();
|
|
|
+ tbLibManagerAudit.setLibManagerId(tbLibManager.getId());
|
|
|
+ tbLibManagerAudit.setName(req.getName());
|
|
|
+ tbLibManagerAudit.setSex(req.getSex());
|
|
|
+ tbLibManagerAudit.setTelephone(req.getTelephone());
|
|
|
+ tbLibManagerAudit.setSubject(req.getCourse());
|
|
|
+ //机构老师为10,同tb_lib_manager.type
|
|
|
+ tbLibManagerAudit.setType(10);
|
|
|
+ //状态:审核中
|
|
|
+ tbLibManagerAudit.setStatus(3);
|
|
|
+ tbLibManagerAudit.setCreateTime(new Date());
|
|
|
+ tbLibManagerAudit.setLon(orgTeacher.getLon());
|
|
|
+ tbLibManagerAudit.setLat(orgTeacher.getLat());
|
|
|
+ tbLibManagerAudit.setAddress(orgTeacher.getAddress());
|
|
|
+ tbLibManagerAudit.setOrgId(orgTeacher.getId());
|
|
|
+ tbLibManagerAudit.setOrgName(orgTeacher.getName());
|
|
|
+ tbLibManagerAudit.setCertification(req.getCertification());
|
|
|
+ tbLibManagerAudit.setIdFace(req.getIdFace());
|
|
|
+ tbLibManagerAudit.setIdCon(req.getIdCon());
|
|
|
+ tbLibManagerAudit.setUserId(userId);
|
|
|
+ //保存审批老师信息
|
|
|
+ libManagerAuditService.save(tbLibManagerAudit);
|
|
|
+ responseEntity.success("保存成功");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity getMyInfo(String userId) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ MyInfoDto dto = new MyInfoDto();
|
|
|
+ //查询该机构老师数据,包含无效的
|
|
|
+ TbLibManager teacher = iBookManagerService.findAllByUserIdAndType(userId, 10);
|
|
|
+ if (teacher == null) {
|
|
|
+ teacher = new TbLibManager();
|
|
|
+ teacher.setUserId(userId);
|
|
|
+ teacher.setType(10);
|
|
|
+ teacher.setState(2);
|
|
|
+ teacher.setCreateTime(new Date());
|
|
|
+ User user = userService.getById(userId);
|
|
|
+ teacher.settPhoto(user.getPhoto());
|
|
|
+ iBookManagerService.save(teacher);
|
|
|
+ }else{
|
|
|
+ //没有头像自动更新头像
|
|
|
+ if(StringUtil.isBlank(teacher.gettPhoto())){
|
|
|
+ User user = userService.getById(userId);
|
|
|
+ teacher.settPhoto(user.getPhoto());
|
|
|
+ iBookManagerService.save(teacher);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //审批记录信息
|
|
|
+ List<TbLibManagerAudit> auditList = libManagerAuditDao.findByLibManagerIdOrderByCreateTimeDesc(teacher.getId());
|
|
|
+ //isFirst=1的情况:1.没有审批记录;2.审批记录是“审批拒绝”和“审核中”(所有审批记录都是被拒绝;审批记录有且只有一条为“审核中”)
|
|
|
+ int isFirst = 0;
|
|
|
+ int approveStatus = 0;
|
|
|
+ int i = 0;
|
|
|
+ //最新的一条审批记录
|
|
|
+ TbLibManagerAudit topAudit = null;
|
|
|
+ if (CollectionUtils.isNotEmpty(auditList)) {
|
|
|
+ for (TbLibManagerAudit audit : auditList) {
|
|
|
+ if (audit.getStatus() == 1) {
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //第2种情况
|
|
|
+ if (i == 0) {
|
|
|
+ isFirst = 1;
|
|
|
+ }
|
|
|
+ topAudit = auditList.get(0);
|
|
|
+ approveStatus = topAudit.getStatus();
|
|
|
+ } else {
|
|
|
+ //第1种情况
|
|
|
+ isFirst = 1;
|
|
|
+ }
|
|
|
+ //第一次注册,返回提交的资料
|
|
|
+ if (isFirst == 1 && topAudit != null) {
|
|
|
+ dto.setName(topAudit.getName());
|
|
|
+ dto.setSex(topAudit.getSex());
|
|
|
+ dto.setTelephone(topAudit.getTelephone());
|
|
|
+ dto.setOrgId(topAudit.getOrgId());
|
|
|
+ dto.setOrganization(topAudit.getOrgName());
|
|
|
+ dto.setCourse(topAudit.getSubject());
|
|
|
+ dto.setStudentCount(0);
|
|
|
+ dto.setCertification(topAudit.getCertification());
|
|
|
+ dto.setIdFace(topAudit.getIdFace());
|
|
|
+ dto.setIdCon(topAudit.getIdCon());
|
|
|
+ }else{
|
|
|
+ dto.setName(teacher.getName());
|
|
|
+ dto.setSex(teacher.getSex() == null ? 0 : teacher.getSex());
|
|
|
+ dto.setTelephone(teacher.getTelephone());
|
|
|
+ dto.setOrgId(teacher.getOrgId());
|
|
|
+ dto.setOrganization(teacher.getOrgName());
|
|
|
+ dto.setCourse(teacher.getCourseName());
|
|
|
+ dto.setStudentCount(libVipBindDao.countByTeacherIdAndVipIdIsNotNull(teacher.getUserId()));
|
|
|
+ dto.setCertification(teacher.getCertification());
|
|
|
+ dto.setIdFace(teacher.getIdFace());
|
|
|
+ dto.setIdCon(teacher.getIdCon());
|
|
|
+ }
|
|
|
+ dto.setPhoto(teacher.gettPhoto());
|
|
|
+ dto.setApproveStatus(approveStatus);
|
|
|
+ dto.setIsFirst(isFirst);
|
|
|
+ responseEntity.success(dto, "成功");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity getMyInfoV1(String userId) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ MyInfoDto dto = new MyInfoDto();
|
|
|
+ //查询该机构老师数据
|
|
|
+ TbLibManager teacher = iBookManagerService.findAllByUserIdAndTypeAndState(userId, 10, 1);
|
|
|
+ if (teacher == null) {
|
|
|
+ return responseEntity.failure("无此身份");
|
|
|
+ } else {
|
|
|
+ //没有头像自动更新头像
|
|
|
+ if (StringUtil.isBlank(teacher.gettPhoto())) {
|
|
|
+ User user = userService.getById(userId);
|
|
|
+ teacher.settPhoto(user.getPhoto());
|
|
|
+ iBookManagerService.save(teacher);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dto.setName(teacher.getName());
|
|
|
+ dto.setSex(teacher.getSex() == null ? 0 : teacher.getSex());
|
|
|
+ dto.setTelephone(teacher.getTelephone());
|
|
|
+ TbLibJoin libJoin = libJoinService.getById(teacher.getLibId());
|
|
|
+ dto.setOrgId(teacher.getLibId());
|
|
|
+ dto.setOrganization(libJoin != null ? libJoin.getLeagueName() : null);
|
|
|
+ dto.setCourse(teacher.getCourseName());
|
|
|
+ //dto.setStudentCount(libVipBindDao.countByTeacherIdAndVipIdIsNotNull(teacher.getUserId()));
|
|
|
+ dto.setCertification(teacher.getCertification());
|
|
|
+ dto.setIdFace(teacher.getIdFace());
|
|
|
+ dto.setIdCon(teacher.getIdCon());
|
|
|
+ dto.setPhoto(teacher.gettPhoto());
|
|
|
+ dto.setApproveStatus(1);
|
|
|
+ dto.setIsFirst(0);
|
|
|
+ responseEntity.success(dto, "成功");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity newGetMyInfo(String userId) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ NewMyInfoDto dto = new NewMyInfoDto();
|
|
|
+ List<SubjectMyInfoDto> dtoList = libManagerMapper.findSubjectMyInfo(userId, Constant.ORG_TEACHER_TYPE);
|
|
|
+ if(CollectionUtils.isEmpty(dtoList)) {
|
|
|
+ return responseEntity.failure("无此身份");
|
|
|
+ }
|
|
|
+ SubjectMyInfoDto subjectDto = dtoList.get(0);
|
|
|
+ dto.setName(subjectDto.getName());
|
|
|
+ dto.setPhoto(subjectDto.getPhoto());
|
|
|
+ dto.setTelephone(subjectDto.getTelephone());
|
|
|
+
|
|
|
+ StringBuffer sb = new StringBuffer();
|
|
|
+ Set<String> set = new LinkedHashSet<>();
|
|
|
+ for (SubjectMyInfoDto subjectMyInfoDto:dtoList) {
|
|
|
+ if(StringUtils.isNotBlank(subjectMyInfoDto.getCourseName())) {
|
|
|
+ List<String> subList = Arrays.asList(subjectMyInfoDto.getCourseName().split(","));
|
|
|
+ if(CollectionUtils.isNotEmpty(subList)) {
|
|
|
+ for (String str:subList) {
|
|
|
+ set.add(str);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sb.append(subjectMyInfoDto.getLeagueName()).append(",");
|
|
|
+ }
|
|
|
+ dto.setLeagueName(sb.substring(0,sb.length()-1));
|
|
|
+ //科目汇总
|
|
|
+ String course = set.stream().filter(string ->!string.isEmpty()).collect(Collectors.joining(","));
|
|
|
+ dto.setCourse(course);
|
|
|
+ responseEntity.success(dto, "成功");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity unAnsweredProblemList(String userId, Pageable pageable, PageReq req) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ Map<String, Object> data = new HashMap<>(16);
|
|
|
+ //查找难题列表
|
|
|
+ Map<String, Object> searchParams = new HashMap<>();
|
|
|
+ searchParams.put("type", 0);
|
|
|
+ searchParams.put("teacherId", userId);
|
|
|
+ searchParams.put("maxCreateTime", req.getMaxCreateTime());
|
|
|
+ searchParams.put("vipId","no_need");
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+ Page<Map<String, Object>> page = problemPictureQueryDao.findProblemListOfParent(searchParams, pageable);
|
|
|
+ if (page.getSize() > 0) {
|
|
|
+ for (Map<String, Object> pageMap : page.getContent()) {
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("vipId", pageMap.get("vip_id"));
|
|
|
+ map.put("photo", pageMap.get("img_url"));
|
|
|
+ map.put("name", pageMap.get("child_name"));
|
|
|
+ map.put("problemId", pageMap.get("id"));
|
|
|
+ map.put("fileKey", pageMap.get("file_key"));
|
|
|
+ map.put("createTime", pageMap.get("create_time"));
|
|
|
+ list.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ data.put("pages", page.getSize());
|
|
|
+ data.put("pageNo", req.getPageNo());
|
|
|
+ data.put("pageSize", req.getPageSize());
|
|
|
+ data.put("list", list);
|
|
|
+ responseEntity.success(data, "成功");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity answeredProblemList(String userId, Pageable pageable, AnsweredProblemReq req) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ Map<String, Object> data = new HashMap<>(16);
|
|
|
+ //查找难题列表
|
|
|
+ Map<String, Object> searchParams = new HashMap<>(16);
|
|
|
+ searchParams.put("type", 1);
|
|
|
+ searchParams.put("teacherId", userId);
|
|
|
+ searchParams.put("maxCreateTime", req.getMaxCreateTime());
|
|
|
+ Date now = new Date();
|
|
|
+ searchParams.put("feedbackStartTime", DateUtil.format_yyyyMMdd(DateUtil.addDays(now, -7)));
|
|
|
+ searchParams.put("feedbackEndTime", DateUtil.format_yyyyMMdd(DateUtil.addDays(now, 1)));
|
|
|
+ if(StringUtil.isNotBlank(req.getVipId())){
|
|
|
+ searchParams.put("vipId", req.getVipId());
|
|
|
+ }else{
|
|
|
+ searchParams.put("vipId","no_need");
|
|
|
+ }
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+ Page<Map<String, Object>> page = problemPictureQueryDao.findProblemListOfParent(searchParams, pageable);
|
|
|
+ if (page.getSize() > 0) {
|
|
|
+ for (Map<String, Object> pageMap : page.getContent()) {
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("photo", pageMap.get("img_url"));
|
|
|
+ map.put("name", pageMap.get("child_name"));
|
|
|
+ map.put("problemId", pageMap.get("id"));
|
|
|
+ map.put("fileKey", pageMap.get("file_key"));
|
|
|
+ map.put("createTime", pageMap.get("feedback_time"));
|
|
|
+ list.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ data.put("pages", page.getSize());
|
|
|
+ data.put("pageNo", req.getPageNo());
|
|
|
+ data.put("pageSize", req.getPageSize());
|
|
|
+ data.put("list", list);
|
|
|
+ responseEntity.success(data, "成功");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity saveAnswer(SaveAnswerReq req) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ problemPictureService.feedbackToProblem(req);
|
|
|
+ responseEntity.success("成功");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity knowList(KnowListReq req, Pageable pageable) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ Map<String, Object> data = new HashMap<>(16);
|
|
|
+ List<KownHowDto> list = new ArrayList<>();
|
|
|
+ Map<String, Object> searchParams = new HashMap<>(16);
|
|
|
+ if (StringUtil.isNotBlank(req.getValue())) {
|
|
|
+ //模糊查询知识点
|
|
|
+ searchParams.put("LIKE_name", req.getValue());
|
|
|
+ Page<Map<String, Object>> pages = zuoybQueryDao.findKnowHowDetailByPage(searchParams, pageable);
|
|
|
+ //单元id对应的知识点LIST
|
|
|
+ Map<String, List<Map<String, Object>>> knowMap = new HashMap<>(16);
|
|
|
+ //单元id关联单元名称
|
|
|
+ Map<String, Object> idToNameMap = new HashMap<>(16);
|
|
|
+ for (Map<String, Object> knowDetail : pages.getContent()) {
|
|
|
+ String key = (String) knowDetail.get("how_id");
|
|
|
+ List<Map<String, Object>> knowDetailMapList;
|
|
|
+ Map<String, Object> knowDetailMap = new HashMap<>(16);
|
|
|
+ knowDetailMap.put("knowHowDetailsId", knowDetail.get("id"));
|
|
|
+ knowDetailMap.put("knowHowDetailsName", knowDetail.get("name"));
|
|
|
+ if (knowMap.get(key) != null) {
|
|
|
+ knowDetailMapList = knowMap.get(key);
|
|
|
+ } else {
|
|
|
+ knowDetailMapList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ knowDetailMapList.add(knowDetailMap);
|
|
|
+ knowMap.put(key, knowDetailMapList);
|
|
|
+ idToNameMap.put((String) knowDetail.get("how_id"), knowDetail.get("how_name"));
|
|
|
+ }
|
|
|
+ for (String key : knowMap.keySet()) {
|
|
|
+ List<Map<String, Object>> knowHowList = knowMap.get(key);
|
|
|
+ KownHowDto dto = new KownHowDto();
|
|
|
+ dto.setKnowHowId(key);
|
|
|
+ dto.setKnowHowName((String) idToNameMap.get(key));
|
|
|
+ List<KownHowDto.KnowHowDetail> knowHowDetailDtoList = new ArrayList<>();
|
|
|
+ if (knowHowList != null && knowHowList.size() > 0) {
|
|
|
+ for (Map<String, Object> knowHow : knowHowList) {
|
|
|
+ KownHowDto.KnowHowDetail knowHowDetailDto = dto.new KnowHowDetail();
|
|
|
+ knowHowDetailDto.setKnowHowDetailsId((String) knowHow.get("knowHowDetailsId"));
|
|
|
+ knowHowDetailDto.setKnowHowDetailsName((String) knowHow.get("knowHowDetailsName"));
|
|
|
+ knowHowDetailDtoList.add(knowHowDetailDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dto.setKnowHowDetailList(knowHowDetailDtoList);
|
|
|
+ list.add(dto);
|
|
|
+ }
|
|
|
+ data.put("pages", pages.getTotalElements());
|
|
|
+ } else {
|
|
|
+ //查找单元列表
|
|
|
+ ProblemPicture problem = problemPictureService.getById(req.getProblemId());
|
|
|
+ LibVip libVip = libVipService.getById(req.getVipId());
|
|
|
+ searchParams.put("courseName", problem.getSubject());
|
|
|
+ searchParams.put("grade", libVip.getGrade());
|
|
|
+ searchParams.put("semester", Integer.parseInt( PropertiesUtil.getValue("semester")));
|
|
|
+ searchParams.put("banben", libVip.getBanben());
|
|
|
+ Page<Map<String, Object>> pages = zuoybQueryDao.findKnowHowByPage(searchParams, pageable);
|
|
|
+ for (Map<String, Object> know : pages.getContent()) {
|
|
|
+ KownHowDto dto = new KownHowDto();
|
|
|
+ dto.setKnowHowId((String) know.get("id"));
|
|
|
+ dto.setKnowHowName((String) know.get("name"));
|
|
|
+ List<ZuoybKnowHowDetails> kowDetailList = zuoybKnowHowDetailsService.findByHowId(dto.getKnowHowId());
|
|
|
+ List<KownHowDto.KnowHowDetail> knowHowDetailDtoList = new ArrayList<>();
|
|
|
+ if (kowDetailList != null && kowDetailList.size() > 0) {
|
|
|
+ for (ZuoybKnowHowDetails knowHowDetail : kowDetailList) {
|
|
|
+ KownHowDto.KnowHowDetail knowHowDetailDto = dto.new KnowHowDetail();
|
|
|
+ knowHowDetailDto.setKnowHowDetailsId(knowHowDetail.getId());
|
|
|
+ knowHowDetailDto.setKnowHowDetailsName(knowHowDetail.getName());
|
|
|
+ knowHowDetailDtoList.add(knowHowDetailDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dto.setKnowHowDetailList(knowHowDetailDtoList);
|
|
|
+ list.add(dto);
|
|
|
+ }
|
|
|
+ data.put("pages", pages.getTotalElements());
|
|
|
+ }
|
|
|
+ data.put("pageNo", req.getPageNo());
|
|
|
+ data.put("pageSize", req.getPageSize());
|
|
|
+ data.put("list", list);
|
|
|
+ responseEntity.success(data, "成功");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity knowListNew(KnowListReq req, Pageable pageable) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ Map<String, Object> data = new HashMap<>(16);
|
|
|
+ List<KownHowDto> list = new ArrayList<>();
|
|
|
+ Map<String, Object> searchParams = new HashMap<>(16);
|
|
|
+ ProblemPicture problem = problemPictureService.getById(req.getProblemId());
|
|
|
+ LibVip libVip = libVipService.getById(req.getVipId());
|
|
|
+ String courseName = problem.getSubject();
|
|
|
+ String grade = libVip.getGrade();
|
|
|
+ int semester = Integer.parseInt( PropertiesUtil.getValue("semester"));
|
|
|
+ //获取版本
|
|
|
+ int banben = banbenDetailService.findBanben(problem.getSubject(), libVip.getSchool(), libVip.getGrade());
|
|
|
+ if (StringUtil.isNotBlank(req.getValue())) {
|
|
|
+ //模糊查询知识点
|
|
|
+ searchParams.put("LIKE_name", req.getValue());
|
|
|
+ searchParams.put("banben", banben);
|
|
|
+ Page<Map<String, Object>> pages = zuoybQueryDao.findKnowHowDetailByPage(searchParams, pageable);
|
|
|
+ //单元id对应的知识点LIST
|
|
|
+ Map<String, List<Map<String, Object>>> knowMap = new HashMap<>(16);
|
|
|
+ //单元id关联单元名称
|
|
|
+ Map<String, Object> idToNameMap = new HashMap<>(16);
|
|
|
+ for (Map<String, Object> knowDetail : pages.getContent()) {
|
|
|
+ String key = (String) knowDetail.get("how_id");
|
|
|
+ List<Map<String, Object>> knowDetailMapList;
|
|
|
+ Map<String, Object> knowDetailMap = new HashMap<>(16);
|
|
|
+ knowDetailMap.put("knowHowDetailsId", knowDetail.get("how_details_id"));
|
|
|
+ knowDetailMap.put("knowHowDetailsName", knowDetail.get("alias"));
|
|
|
+ if (knowMap.get(key) != null) {
|
|
|
+ knowDetailMapList = knowMap.get(key);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ knowDetailMapList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ knowDetailMapList.add(knowDetailMap);
|
|
|
+ knowMap.put(key, knowDetailMapList);
|
|
|
+ idToNameMap.put((String) knowDetail.get("how_id"), knowDetail.get("how_name"));
|
|
|
+ }
|
|
|
+ for (String key : knowMap.keySet()) {
|
|
|
+ List<Map<String, Object>> knowHowList = knowMap.get(key);
|
|
|
+ KownHowDto dto = new KownHowDto();
|
|
|
+ dto.setKnowHowId(key);
|
|
|
+ dto.setKnowHowName((String) idToNameMap.get(key));
|
|
|
+ List<KownHowDto.KnowHowDetail> knowHowDetailDtoList = new ArrayList<>();
|
|
|
+ if (knowHowList != null && knowHowList.size() > 0) {
|
|
|
+ for (Map<String, Object> knowHow : knowHowList) {
|
|
|
+ KownHowDto.KnowHowDetail knowHowDetailDto = dto.new KnowHowDetail();
|
|
|
+ knowHowDetailDto.setKnowHowDetailsId((String) knowHow.get("knowHowDetailsId"));
|
|
|
+ knowHowDetailDto.setKnowHowDetailsName((String) knowHow.get("knowHowDetailsName"));
|
|
|
+ knowHowDetailDtoList.add(knowHowDetailDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dto.setKnowHowDetailList(knowHowDetailDtoList);
|
|
|
+ list.add(dto);
|
|
|
+ }
|
|
|
+ data.put("pages", pages.getTotalElements());
|
|
|
+ } else {
|
|
|
+ //查找单元列表
|
|
|
+ searchParams.put("EQ_courseName", courseName);
|
|
|
+ searchParams.put("EQ_grade", grade);
|
|
|
+ searchParams.put("EQ_semester", semester);
|
|
|
+ searchParams.put("EQ_type", banben);
|
|
|
+ //查询条件为单元
|
|
|
+ searchParams.put("EQ_stat", 1);
|
|
|
+ Page<ZuoybKnowHowDetailsSort> pages = zuoybKnowHowDetailsSortService.findByPage(searchParams, pageable);
|
|
|
+ for (ZuoybKnowHowDetailsSort know : pages.getContent()) {
|
|
|
+ KownHowDto dto = new KownHowDto();
|
|
|
+ dto.setKnowHowId(know.getHowId());
|
|
|
+ dto.setKnowHowName(know.getAlias());
|
|
|
+ List<ZuoybKnowHowDetailsSort> kowDetailList = zuoybKnowHowDetailsSortService.findByCourseNameAndGradeAndSemesterAndTypeAndStatAndHowId(courseName, grade, semester, banben, 2, dto.getKnowHowId());
|
|
|
+ List<KownHowDto.KnowHowDetail> knowHowDetailDtoList = new ArrayList<>();
|
|
|
+ if (kowDetailList != null && kowDetailList.size() > 0) {
|
|
|
+ for (ZuoybKnowHowDetailsSort knowHowDetail : kowDetailList) {
|
|
|
+ KownHowDto.KnowHowDetail knowHowDetailDto = dto.new KnowHowDetail();
|
|
|
+ knowHowDetailDto.setKnowHowDetailsId(knowHowDetail.getHowDetailsId());
|
|
|
+ knowHowDetailDto.setKnowHowDetailsName(knowHowDetail.getAlias());
|
|
|
+ knowHowDetailDtoList.add(knowHowDetailDto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dto.setKnowHowDetailList(knowHowDetailDtoList);
|
|
|
+ list.add(dto);
|
|
|
+ }
|
|
|
+ data.put("pages", pages.getTotalElements());
|
|
|
+ }
|
|
|
+ data.put("pageNo", req.getPageNo());
|
|
|
+ data.put("pageSize", req.getPageSize());
|
|
|
+ data.put("list", list);
|
|
|
+ responseEntity.success(data, "成功");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity bindStudentList(String userId, Pageable pageable, PageReq req) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ Map<String, Object> data = new HashMap<>(16);
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+ Map<String, Object> searchParams = new HashMap<>(16);
|
|
|
+ searchParams.put("teacherId", userId);
|
|
|
+ Page<Map<String, Object>> pages = libVipDao.findVipByOrgTeacherId(searchParams, pageable);
|
|
|
+ for (Map<String, Object> student : pages.getContent()) {
|
|
|
+ Map<String, Object> map = new HashMap<>(16);
|
|
|
+ map.put("vipId", student.get("id"));
|
|
|
+ map.put("photo", student.get("img_url"));
|
|
|
+ map.put("name", student.get("child_name"));
|
|
|
+ map.put("school", student.get("school"));
|
|
|
+ map.put("grade", student.get("grade"));
|
|
|
+ list.add(map);
|
|
|
+ }
|
|
|
+ data.put("pages", pages.getTotalElements());
|
|
|
+ data.put("pageNo", req.getPageNo());
|
|
|
+ data.put("pageSize", req.getPageSize());
|
|
|
+ data.put("list", list);
|
|
|
+ responseEntity.success(data, "成功");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity homeworkTask(HomeworkTaskReq req) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity homeworkReport(HomeworkReportReq req) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity getOrganizationList(OrganizationListReq req, Pageable pageable) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ Map<String, Object> data = new HashMap<>(16);
|
|
|
+ List<Map<String, Object>> list = new ArrayList<>();
|
|
|
+ Map<String, Object> searchParams = new HashMap<>(16);
|
|
|
+ if (StringUtils.isNoneBlank(req.getMaxCreateTime())) {
|
|
|
+ searchParams.put("LTE_createTime", req.getMaxCreateTime());
|
|
|
+ }
|
|
|
+ searchParams.put("LIKE_name", req.getName());
|
|
|
+ Page<OrgTeacher> pages = orgTeacherService.findByPage(searchParams, pageable);
|
|
|
+ for (OrgTeacher org : pages.getContent()) {
|
|
|
+ Map<String, Object> map = new HashMap<>(16);
|
|
|
+ map.put("orgId", org.getId());
|
|
|
+ map.put("name", org.getName());
|
|
|
+ list.add(map);
|
|
|
+ }
|
|
|
+ data.put("pages", pages.getTotalElements());
|
|
|
+ data.put("pageNo", req.getPageNo());
|
|
|
+ data.put("pageSize", req.getPageSize());
|
|
|
+ data.put("list", list);
|
|
|
+ responseEntity.success(data,"成功");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity swipeBinding(String userId, SwipeBindingReq req) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+ //格式为:studentBindOrgTeacher?vipId=123456&subject=YUWEN
|
|
|
+ String qrCode = req.getQrCode();
|
|
|
+ int status = 0;
|
|
|
+ String vipId = "";
|
|
|
+ String subject = "";
|
|
|
+ if (StringUtil.isNotBlank(qrCode)) {
|
|
|
+ if (!qrCode.contains("studentBindOrgTeacher")) {
|
|
|
+ status = 1;
|
|
|
+ }
|
|
|
+ try{
|
|
|
+ vipId = qrCode.substring(qrCode.indexOf("vipId=") + 6, qrCode.indexOf("&"));
|
|
|
+ subject = qrCode.substring(qrCode.indexOf("subject=") + 8);
|
|
|
+ }catch (Exception e){
|
|
|
+ status = 1;
|
|
|
+ }
|
|
|
+ if (StringUtil.isBlank(vipId) || StringUtil.isBlank(subject)) {
|
|
|
+ status = 1;
|
|
|
+ }
|
|
|
+ subject = Constant.getSubjectFromRequest(subject);
|
|
|
+ } else {
|
|
|
+ status = 1;
|
|
|
+ }
|
|
|
+ if (status > 0) {
|
|
|
+ responseEntity.failure("不能识别该二维码");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+ TbLibManager teacher = iBookManagerService.findByUserId(userId, 10);
|
|
|
+ if(!teacher.getCourseName().contains(subject)){
|
|
|
+ responseEntity.failure("您无权限绑定该科目学生");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+ LibVipBind libVipBind = libVipBindService.findByVipIdAndSubject(vipId,subject);
|
|
|
+ if (libVipBind!=null){
|
|
|
+ if(StringUtil.isBlank(libVipBind.getTeacherId())){
|
|
|
+ libVipBind.setTeacherId(userId);
|
|
|
+ libVipBindService.save(libVipBind);
|
|
|
+ }else if(userId.equals(libVipBind.getTeacherId())){
|
|
|
+ responseEntity.failure("该学生已经被您绑定了");
|
|
|
+ return responseEntity;
|
|
|
+ }else{
|
|
|
+ responseEntity.failure("该学生已经被其他老师绑定了");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ libVipBind = new LibVipBind();
|
|
|
+ libVipBind.setSubject(subject);
|
|
|
+ libVipBind.setCreateTime(new Date());
|
|
|
+ libVipBind.setVipId(vipId);
|
|
|
+ libVipBind.setTeacherId(userId);
|
|
|
+ libVipBindService.save(libVipBind);
|
|
|
+ }
|
|
|
+ //未解答难题小孩和老师绑定(只绑定老师注册科目)
|
|
|
+ List<ProblemPicture> list = problemPictureDao.findUnansweredAndNoTeacherByVipIdAndSubject(vipId,subject);
|
|
|
+ for (ProblemPicture problemPicture : list) {
|
|
|
+ problemPicture.setTeacherId(userId);
|
|
|
+ problemPictureService.save(problemPicture);
|
|
|
+ }
|
|
|
+ responseEntity.success("成功");
|
|
|
+ return responseEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity rectifyCourseName(String homeworkPictureId, String courseName) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+
|
|
|
+ HomeworkPicture homeworkPicture = homeworkPictureService.getById(homeworkPictureId);
|
|
|
+ if (courseName.equals(homeworkPicture.getSubject()) || homeworkPicture.getIsFeedback() == 1){
|
|
|
+ return responseEntity.failure("当前学科与目标科目相同或者该作业已批改");
|
|
|
+ }
|
|
|
+
|
|
|
+ String teacherId = teacherService.getHomeworkTeacherId(homeworkPicture.getVipId(), courseName);
|
|
|
+ Homework hw = homeworkService.findByTodaySubjectHomework(homeworkPicture.getVipId(), courseName);
|
|
|
+ if (hw == null){
|
|
|
+ hw = new Homework();
|
|
|
+ hw.setSubject(courseName);
|
|
|
+ hw.setParentId(homeworkPicture.getParentId());
|
|
|
+ hw.setDerver(homeworkPicture.getDerver());
|
|
|
+ hw.setVipId(homeworkPicture.getVipId());
|
|
|
+ hw.setStartTime(homeworkPicture.getCreateTime());
|
|
|
+ hw.setCreateTime(homeworkPicture.getCreateTime());
|
|
|
+ LibVip libVip = libVipService.getById(homeworkPicture.getVipId());
|
|
|
+ hw.setGrade(libVip.getGrade());
|
|
|
+ hw = homeworkService.save(hw);
|
|
|
+ }
|
|
|
+ homeworkPicture.setHomeworkId(hw.getId());
|
|
|
+ homeworkPicture.setAllotTime(new Date());
|
|
|
+ homeworkPicture.setTeacherId(teacherId);
|
|
|
+ homeworkPicture.setSubject(courseName);
|
|
|
+ homeworkPicture = homeworkPictureService.save(homeworkPicture);//修改科目
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(teacherId)) {
|
|
|
+ //更新新科目批改老师的批改作业图片数量和实时权重
|
|
|
+ bookManagerService.updateCorrectHomeworkNum(homeworkPicture.getVipId(), teacherId, 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ //推送线上老师
|
|
|
+ homeworkPictureService.pushOnlineTeacher(homeworkPicture);
|
|
|
+
|
|
|
+ return responseEntity.success("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity sendVagueImgRemind(String homeworkPictureId) {
|
|
|
+ return homeworkPictureService.vagueHomeworkPicture(homeworkPictureId,null,homeworkPictureId);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity homeworkToSmarttimePicture(String homeworkPictureId) {
|
|
|
+ return kmtCorrectHomeworkService.homeworkPicture2SmartTimePicture(homeworkPictureId);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseEntity getAnswerFilterCondition(String homeworkId) {
|
|
|
+ ResponseEntity responseEntity = new ResponseEntity();
|
|
|
+
|
|
|
+ Map<String, Object> homeworkInfoMap = homeworkService.findHomeworkInfoById(homeworkId);
|
|
|
+
|
|
|
+ if (homeworkInfoMap == null) {
|
|
|
+ return responseEntity.failure("未查询到对应作业信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ int semester = Integer.parseInt( PropertiesUtil.getValue("semester"));
|
|
|
+ ExerciseConditionRequest request = new ExerciseConditionRequest();
|
|
|
+ request.setGrade(String.valueOf(homeworkInfoMap.get("grade")));
|
|
|
+ request.setSemester(semester);
|
|
|
+ request.setSubject(String.valueOf(homeworkInfoMap.get("subject")));
|
|
|
+// request.setVersionType(Integer.valueOf(String.valueOf(homeworkInfoMap.get("banben"))));
|
|
|
+
|
|
|
+ //userId只用于加工审核那里查询待加工待审核的练习册,此处无用
|
|
|
+ List<ExerciseBookDto> list = kmtExerciseBookCourseService.getExerciseCondition(request, null);
|
|
|
+ Map<String, Object> data = new HashMap<>();
|
|
|
+ data.put("books", list);
|
|
|
+
|
|
|
+ return responseEntity.success(data, "查询成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<ExerciseQuestionAnswer4CorrectDTO> findAnswerList(AnswerSearchRequest request) {
|
|
|
+ return kmtExerciseQuestionService.findByExerciseBookCourseIdV2(request);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void correct(CorrectRequest request, String teacherId) {
|
|
|
+ String homeworkId = request.getHomeworkId();
|
|
|
+ Homework homework = homeworkService.getById(homeworkId);
|
|
|
+
|
|
|
+ if (homework == null) {
|
|
|
+ throw new CommonException("作业不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ Date now = new Date();
|
|
|
+
|
|
|
+ //把之前的答错、答对题目信息改为删除失效状态
|
|
|
+ List<String> homeworkPictureIdList = request.getHomeworkPictureIdList();
|
|
|
+ List<KmtHomeworkWrongQuestion> oldKmtHomeworkWrongQuestionList = kmtHomeworkWrongQuestionService.findByHomeworkPictureIdIn(homeworkPictureIdList);
|
|
|
+ if (CollectionUtils.isNotEmpty(oldKmtHomeworkWrongQuestionList)) {
|
|
|
+ oldKmtHomeworkWrongQuestionList.forEach(kmtHomeworkWrongQuestion -> {
|
|
|
+ kmtHomeworkWrongQuestion.setIsDelete(true);
|
|
|
+ kmtHomeworkWrongQuestion.setUpdateTime(now);
|
|
|
+ });
|
|
|
+ kmtHomeworkWrongQuestionService.save(oldKmtHomeworkWrongQuestionList);
|
|
|
+ }
|
|
|
+
|
|
|
+ //删除之前批改添加的错题知识点记录
|
|
|
+ homeworkHowDetailsService.deleteByHomeworkPictureIdIn(homeworkPictureIdList);
|
|
|
+
|
|
|
+ if (request.getWrongHowDetailIds() != null && request.getWrongHowDetailIds().size() > 0){
|
|
|
+ //有自己勾选的知识点,则直接保存知识点
|
|
|
+ Integer knowledgeVersion = request.getKnowledgeVersion();
|
|
|
+ List<HomeworkHowDetail> list = new ArrayList<>();
|
|
|
+ request.getWrongHowDetailIds().forEach(detailId -> {
|
|
|
+ HomeworkHowDetail homeworkHowDetail = homeworkHowDetailsService.createHomeworkHowDetail(now, homeworkId, detailId, knowledgeVersion);
|
|
|
+ list.add(homeworkHowDetail);
|
|
|
+ });
|
|
|
+ homeworkHowDetailsService.save(list);
|
|
|
+ } else {
|
|
|
+ List<WrongQuestionRequest> wrongQuestionList = request.getWrongQuestionList();
|
|
|
+ if (CollectionUtils.isNotEmpty(wrongQuestionList)) {//有错题
|
|
|
+ wrongQuestionList.forEach(wrongQuestion -> {
|
|
|
+ //生成错题记录
|
|
|
+ KmtHomeworkWrongQuestion kmtHomeworkWrongQuestion = kmtHomeworkWrongQuestionService.createKmtHomeworkWrongQuestion(homework, now, wrongQuestion.getQuestionId(), HomeworkWrongQuestionTypeEnum.WrongAnswer.getCode());
|
|
|
+ kmtHomeworkWrongQuestion = kmtHomeworkWrongQuestionService.save(kmtHomeworkWrongQuestion);
|
|
|
+
|
|
|
+ List<String> knowledgeIdList = wrongQuestion.getKnowledgeIdList();
|
|
|
+ if (CollectionUtils.isNotEmpty(knowledgeIdList)) {//教师手动选择了知识点
|
|
|
+ for (String knowledgeId : knowledgeIdList) {
|
|
|
+ HomeworkHowDetail homeworkHowDetail = homeworkHowDetailsService.createHomeworkHowDetail(now, kmtHomeworkWrongQuestion, knowledgeId);
|
|
|
+ homeworkHowDetailsService.save(homeworkHowDetail);
|
|
|
+ }
|
|
|
+ } else {//未选择,则默认选择此题目下所有知识点
|
|
|
+ List<KmtExerciseQuestionKnow> kmtExerciseQuestionKnowList = kmtExerciseQuestionKnowService.findByQuestionId(kmtHomeworkWrongQuestion.getQuestionId());
|
|
|
+ for (KmtExerciseQuestionKnow kmtExerciseQuestionKnow : kmtExerciseQuestionKnowList) {
|
|
|
+ HomeworkHowDetail homeworkHowDetail = homeworkHowDetailsService.createHomeworkHowDetail(now, kmtHomeworkWrongQuestion, kmtExerciseQuestionKnow.getHowDetailsId());
|
|
|
+ homeworkHowDetailsService.save(homeworkHowDetail);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ //答对的题
|
|
|
+ List<String> rightQuestionIdList = request.getRightQuestionIdList();
|
|
|
+ if (CollectionUtils.isNotEmpty(rightQuestionIdList)) {
|
|
|
+ rightQuestionIdList.forEach(rightQuestionId -> {
|
|
|
+ //生成答对的题目记录
|
|
|
+ KmtHomeworkWrongQuestion kmtHomeworkWrongQuestion = kmtHomeworkWrongQuestionService.createKmtHomeworkWrongQuestion(homework, now, rightQuestionId, HomeworkWrongQuestionTypeEnum.Right.getCode());
|
|
|
+ kmtHomeworkWrongQuestionService.save(kmtHomeworkWrongQuestion);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //更新作业图片记录信息
|
|
|
+ List<HomeworkPicture> homeworkPictureList = homeworkPictureService.findByIdInAndIsDelete(homeworkPictureIdList, 0);
|
|
|
+ List<CorrectedPictureUrlRequest> correctedPictureUrlRequestList = request.getCorrectedPictureUrlList();
|
|
|
+ List<HomeworkPicture> homeworkPictureListNeedUpdate = new ArrayList<>();
|
|
|
+ homeworkPictureList.forEach(homeworkPicture -> {
|
|
|
+ if (!Objects.equals(1, homeworkPicture.getIsMark()) && !Objects.equals(3, homeworkPicture.getIsMark())) {
|
|
|
+ homeworkPicture.setIsFeedback(1);//更新为已批改状态
|
|
|
+
|
|
|
+ //如果有批注则需要更新批注字段
|
|
|
+ Optional<CorrectedPictureUrlRequest> optional = correctedPictureUrlRequestList.stream().filter(it -> Objects.equals(it.getHomeworkPictureId(), homeworkPicture.getId())).findFirst();
|
|
|
+ if (optional.isPresent()) {
|
|
|
+ CorrectedPictureUrlRequest correctedPictureUrlRequest = optional.get();
|
|
|
+ homeworkPicture.setCorrectedPictureUrl(correctedPictureUrlRequest.getCorrectedPictureUrl());
|
|
|
+ }
|
|
|
+
|
|
|
+ homeworkPictureListNeedUpdate.add(homeworkPicture);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ homeworkPictureService.save(homeworkPictureListNeedUpdate);
|
|
|
+
|
|
|
+ //更新学科作业记录信息
|
|
|
+ homework.setCorrectionTime(homeworkService.stopCorrectTiming(homeworkId));
|
|
|
+ homeworkService.save(homework);
|
|
|
+
|
|
|
+ //推送相关通知信息
|
|
|
+ homeworkPictureService.confirmPushTodayFinishHomework(homework.getId(),homework.getDerver(),homework.getVipId(), homework.getSubject(), homework.getCreateTime(),homework.getCorrectTime());
|
|
|
+ }
|
|
|
+
|
|
|
+}
|