diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolStudentService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolStudentService.java index a2a268eb..79c1002d 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolStudentService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/DlDriveSchoolStudentService.java @@ -150,5 +150,5 @@ public interface DlDriveSchoolStudentService extends IService> + */ + @GetMapping("/getAllByUserIdAndCourseId") + @TenantIgnore + @PermitAll + public CommonResult getAllByUserIdAndCourseId(Long userId, String courseId) { + return success(processService.getAllByUserIdAndCourseId(userId, courseId)); + } + + /** + * 根据userId查询考试列表 + */ + @GetMapping("/getExamListByUserId") + @TenantIgnore + @PermitAll + public CommonResult getExamListByUserId(Long userId) { + return success(processService.getExamListByUserId(userId)); + } } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/ProcessService.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/ProcessService.java index 4f36731d..dd4b378a 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/ProcessService.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/ProcessService.java @@ -119,4 +119,10 @@ public interface ProcessService extends IService { * @return java.util.List */ List getAllByUserIdAndCourseId(Long userId, String courseId); + + /** + * 根据userId查询考试列表 + * @param userId 用户id + */ + List getExamListByUserId(Long userId); } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java index 4963407b..d0ab0998 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/course/service/impl/ProcessServiceImpl.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.base.constant.SchoolBaseConstants; +import cn.iocoder.yudao.module.base.service.DlDriveSchoolStudentService; import cn.iocoder.yudao.module.course.entity.Process; import cn.iocoder.yudao.module.course.entity.SchoolCommission; import cn.iocoder.yudao.module.course.entity.SchoolCourseOrder; @@ -30,6 +31,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -56,6 +58,9 @@ public class ProcessServiceImpl extends ServiceImpl impl @Resource private SchoolCourseOrderService schoolCourseOrderService; + @Lazy + @Resource + private DlDriveSchoolStudentService dlDriveSchoolStudentService; /** @@ -323,14 +328,28 @@ public class ProcessServiceImpl extends ServiceImpl impl .eq(Process::getUserId, process.getUserId()) .eq(Process::getSubject, process.getSubject()) .eq(Process::getCourseId, process.getCourseId()) - .eq(Process::getDeleted, false) + .eq(Process::getTenantId, process.getTenantId()) + .eq(Process::getDeleted, SchoolBaseConstants.COMMON_NO) .set(process.getUserName() != null, Process::getUserName, process.getUserName()) .set(process.getExamStatus() != null, Process::getExamStatus, process.getExamStatus()) .set(process.getExamScore() != null, Process::getExamScore, process.getExamScore()) .set(process.getRemark() != null, Process::getRemark, process.getRemark()) .set(process.getExamTime() != null, Process::getExamTime, process.getExamTime()) - .set(process.getImages() != null, Process::getImages, process.getImages())); + .set(process.getImages() != null, Process::getImages, process.getImages()) + .setSql("exam_num = IFNULL(exam_num, 0) + 1")); + + if(process.getSubject() == 1){ + update(Wrappers.lambdaUpdate(Process.class) + .eq(Process::getUserId, process.getUserId()) + .eq(Process::getSubject, 2) + .eq(Process::getCourseId, process.getCourseId()) + .eq(Process::getDeleted, SchoolBaseConstants.COMMON_NO) + .set(Process::getStatus, SchoolBaseConstants.PROCESS_STATUS_IN_PROGRESS)); + } + if(process.getSubject() == 4){ + dlDriveSchoolStudentService.updateStudentPassAndGradTime(process.getExamTime(),process.getUserId(),process.getTenantId()); + } } @@ -352,6 +371,24 @@ public class ProcessServiceImpl extends ServiceImpl impl return null; } + /** + * 根据userId查询考试列表 + * @param userId 用户id + */ + @Override + public List getExamListByUserId(Long userId) { + if (userId == null) { + return null; + } + List processList = processMapper.selectList( + Wrappers.lambdaQuery(Process.class) + .eq(Process::getUserId, userId) + .in(Process::getStatus, Arrays.asList("1", "2")) + .isNotNull(Process::getExamScore) + ); + return BeanUtil.copyToList(processList, ProcessVO.class); + } + private static void verify(List processes) { for (Process process : processes) { // 校验状态 diff --git a/dl-module-jx/src/main/resources/mapper/course/SchoolCourseOrderMapper.xml b/dl-module-jx/src/main/resources/mapper/course/SchoolCourseOrderMapper.xml index 23072325..d028b8a2 100644 --- a/dl-module-jx/src/main/resources/mapper/course/SchoolCourseOrderMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/course/SchoolCourseOrderMapper.xml @@ -28,15 +28,6 @@ and main.user_id = #{entity.userId} and main.payment_status = #{entity.paymentStatus} and main.if_end = #{entity.ifEnd} - main.deleted = 0 - and main.order_no = #{entity.orderNo} - and main.user_name like concat('%', - #{entity.userName}, '%') - - and main.user_id = #{entity.userId} - and main.payment_status = - #{entity.paymentStatus} - order by main.create_time desc