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 61d56a3d..a2a268eb 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 @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import javax.validation.Valid; +import java.util.Date; import java.util.List; /** @@ -30,8 +31,7 @@ public interface DlDriveSchoolStudentService extends IService queryCoachListPage(DlDriveSchoolStudentVO pageReqVO, Page page); /** - * - * @author PQZ - * @date 17:08 2025/2/19 * @param type 时间查询类型(01驾校统招,02教练自招,03自来客户) * @param coachId 教练id * @param startTime 查询时间范围--开始 * @param endTime 查询时间范围--结束 * @return java.util.List - **/ + * @author PQZ + * @date 17:08 2025/2/19 + **/ List indexGetTrainList(String type, Long coachId, String startTime, String endTime); /** - *查自来客户 - * @author PQZ - * @date 11:43 2025/2/20 + * 查自来客户 + * * @param startTimeStr 查询时间范围--开始 * @param endTimeStr 查询时间范围--结束 * @return cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO - **/ - List indexGetFormList( String startTimeStr, String endTimeStr); + * @author PQZ + * @date 11:43 2025/2/20 + **/ + List indexGetFormList(String startTimeStr, String endTimeStr); + + /** + * 更新学员拿证时间 + * + * @param passTime 拿证日期 + * @param userId 学员id + * @param tenantId 租户id + */ + Boolean updateStudentPassAndGradTime(Date passTime, Long userId, String tenantId); } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStudentServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStudentServiceImpl.java index 9559ce19..baaebeb9 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStudentServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStudentServiceImpl.java @@ -4,6 +4,8 @@ import cn.hutool.core.date.DateUtil; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; +import cn.iocoder.yudao.module.base.constant.SchoolBaseConstants; import cn.iocoder.yudao.module.base.entity.DlDriveSchoolStudent; import cn.iocoder.yudao.module.base.mapper.DlDriveSchoolStudentMapper; import cn.iocoder.yudao.module.base.service.DlDriveSchoolStudentService; @@ -14,13 +16,16 @@ import cn.iocoder.yudao.module.course.service.ProcessService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.util.Date; import java.util.List; /** @@ -42,7 +47,7 @@ public class DlDriveSchoolStudentServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper() - .eq(DlDriveSchoolStudent::getUserId,userId) + .eq(DlDriveSchoolStudent::getUserId, userId) .orderByDesc(BaseDO::getCreateTime); List list = this.list(queryWrapper); - return list.isEmpty()?null:list.get(0); + return list.isEmpty() ? null : list.get(0); } /** @@ -125,7 +129,7 @@ public class DlDriveSchoolStudentServiceImpl extends ServiceImpl queryListPage(DlDriveSchoolStudentVO pageReqVO, Page page) { - return dlDriveSchoolStudentMapper.queryListPage(pageReqVO,page); + return dlDriveSchoolStudentMapper.queryListPage(pageReqVO, page); } /** @@ -138,10 +142,10 @@ public class DlDriveSchoolStudentServiceImpl extends ServiceImpl getCanExamStudentList(String courseId, Integer subject,String userName) { + public List getCanExamStudentList(String courseId, Integer subject, String userName) { //教练ID Long userId = SecurityFrameworkUtils.getLoginUserId(); - return dlDriveSchoolStudentMapper.selectCanExamStudentList(courseId,userId,subject,userName); + return dlDriveSchoolStudentMapper.selectCanExamStudentList(courseId, userId, subject, userName); } /** @@ -155,7 +159,7 @@ public class DlDriveSchoolStudentServiceImpl extends ServiceImpl pageStaffStudent(DlDriveSchoolStaffVO staffVO, Page page) { - return dlDriveSchoolStudentMapper.pageStaffStudent(staffVO,page); + return dlDriveSchoolStudentMapper.pageStaffStudent(staffVO, page); } /** @@ -172,28 +176,28 @@ public class DlDriveSchoolStudentServiceImpl extends ServiceImpl pageResult = dlDriveSchoolStudentMapper.selectByCoachId(pageReqVO,page); - pageResult.getRecords().forEach(item->{ + IPage pageResult = dlDriveSchoolStudentMapper.selectByCoachId(pageReqVO, page); + pageResult.getRecords().forEach(item -> { //查每个学生的当前所处的科目 - item.setProcess(processService.selectByUserId(item.getUserId(),item.getCoachId())); + item.setProcess(processService.selectByUserId(item.getUserId(), item.getCoachId())); }); return pageResult; } @@ -209,16 +213,17 @@ public class DlDriveSchoolStudentServiceImpl extends ServiceImpl indexGetTrainList(String type, Long coachId, String startTime, String endTime) { - if("03".equals(type)){ + if ("03".equals(type)) { //自来的学生 - return dlDriveSchoolStudentMapper.indexCusStudentList(startTime,endTime); - }else{ - return dlDriveSchoolStudentMapper.indexGetTrainList(type,coachId,startTime,endTime); + return dlDriveSchoolStudentMapper.indexCusStudentList(startTime, endTime); + } else { + return dlDriveSchoolStudentMapper.indexGetTrainList(type, coachId, startTime, endTime); } } /** * 查自来客户 + * * @param startTimeStr 查询时间范围--开始 * @param endTimeStr 查询时间范围--结束 * @return cn.iocoder.yudao.module.base.vo.DlDriveSchoolStaffVO @@ -227,7 +232,31 @@ public class DlDriveSchoolStudentServiceImpl extends ServiceImpl indexGetFormList(String startTimeStr, String endTimeStr) { - return dlDriveSchoolStudentMapper.indexGetFormList(startTimeStr,endTimeStr); + return dlDriveSchoolStudentMapper.indexGetFormList(startTimeStr, endTimeStr); + } + + /** + * 更新学员拿证时间 + * + * @param passTime 拿证日期 + * @param userId 学员id + * @param tenantId 租户id + */ + @TenantIgnore + @Override + public Boolean updateStudentPassAndGradTime(Date passTime, Long userId, String tenantId) { + if (ObjectUtils.isEmpty(passTime) || ObjectUtils.isEmpty(userId) || ObjectUtils.isEmpty(tenantId)) { + return false; + } + // 更新学员拿证时间 + update(Wrappers.lambdaUpdate(DlDriveSchoolStudent.class) + .eq(DlDriveSchoolStudent::getUserId, userId) + .eq(DlDriveSchoolStudent::getTenantId, tenantId) + .set(DlDriveSchoolStudent::getPassTime, passTime) + .eq(DlDriveSchoolStudent::getDeleted, SchoolBaseConstants.COMMON_NO) + .set(DlDriveSchoolStudent::getGradTime, new Date())); + + return true; } diff --git a/dl-module-jx/src/main/resources/mapper/course/ProcessMapper.xml b/dl-module-jx/src/main/resources/mapper/course/ProcessMapper.xml index e305fba4..cff60e26 100644 --- a/dl-module-jx/src/main/resources/mapper/course/ProcessMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/course/ProcessMapper.xml @@ -52,6 +52,13 @@ and dsp.name like concat('%', #{entity.courseName}, '%') and dsp.user_id = #{entity.userId} -order by dsp.create_time desc + ORDER BY + (CASE + WHEN exam_status = '1' AND finance_pass IS NULL THEN 1 -- 优先级最高 + WHEN exam_status = '9' THEN 2 + WHEN status = '1' THEN 2 + ELSE 4 + END), + create_time DESC; -- 再按创建时间降序