diff --git a/share-api/src/main/java/com/xjy/ai/api/controller/glcc/StudentApplyController.java b/share-api/src/main/java/com/xjy/ai/api/controller/glcc/StudentApplyController.java index 5e260f3..8ce5093 100644 --- a/share-api/src/main/java/com/xjy/ai/api/controller/glcc/StudentApplyController.java +++ b/share-api/src/main/java/com/xjy/ai/api/controller/glcc/StudentApplyController.java @@ -2,6 +2,7 @@ package com.xjy.ai.api.controller.glcc; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xjy.ai.api.annotion.GuestAccess; import com.xjy.ai.common.constant.Constants; import com.xjy.ai.common.response.DataPacketUtil; import com.xjy.ai.common.response.ResponseData; @@ -30,10 +31,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; @RestController @@ -121,10 +119,10 @@ public class StudentApplyController { @ApiOperation("查看学生报名信息") @GetMapping("/{id}") public ResponseEntity get(@PathVariable int id) { - GlccRegistrationStudent registrationStudent = studentApplyService.getById(id); + GlccRegistrationStudent registrationStudent = studentApplyService.getById(id); StudentRegistrationVo vo = BeanCopyUtils.beanPropertiesCopy(registrationStudent, StudentRegistrationVo.class); List list = Optional.ofNullable(studentApplyTaskService.getRegistrationStudentTaskList(registrationStudent.getId())).orElse(Collections.emptyList()) - .stream().map(studentTask ->{ + .stream().map(studentTask -> { StudentRegistrationTaskVo studentRegistrationTaskVo = BeanCopyUtils.beanPropertiesCopy(studentTask, StudentRegistrationTaskVo.class); GlccRegistrationTask task = applyTaskService.getById(studentTask.getTaskId()); studentRegistrationTaskVo.setTaskName(task == null ? "" : task.getTaskName()); @@ -149,9 +147,9 @@ public class StudentApplyController { List studentIds = Optional.ofNullable(studentList).orElse(Collections.emptyList()).stream() .map(GlccRegistrationStudent::getId).collect(Collectors.toList()); Page page = null; - if (studentIds.isEmpty()){ - page = new Page<>(curPage,pageSize); - }else{ + if (studentIds.isEmpty()) { + page = new Page<>(curPage, pageSize); + } else { page = studentApplyTaskService.pageList(curPage, pageSize, studentIds, taskId); } List voList = Optional.ofNullable(page.getRecords()).orElse(Collections.emptyList()).stream().map((item) -> { @@ -171,7 +169,39 @@ public class StudentApplyController { vo.setTaskName(task == null ? "" : task.getTaskName()); vo.setMemoAttachment(busiAttachmentsService.selectByPrimaryKey(item.getMemoAttachmentId())); vo.setProveAttachment(busiAttachmentsService.selectByPrimaryKey(student.getProveAttachmentId())); - vo.setProjectName(registrationInformation == null ? "" : registrationInformation.getProjectName()); + vo.setProjectName(registrationInformation == null ? "" : registrationInformation.getProjectName()); + vo.setTutorName(task == null ? "" : task.getTutorName()); + vo.setTutorMail(task == null ? "" : task.getTutorMail()); + vo.setTutorPhone(task == null ? "" : task.getTutorPhone()); + return vo; + }).collect(Collectors.toList()); + return DataPacketUtil.ok(page.getTotal(), voList); + } + + @ApiOperation("公示报名列表") + @GetMapping("/passList") + @GuestAccess + public ResponseEntity passList(int curPage, int pageSize, String keyword) { + Page page = studentApplyTaskService.passPageList(curPage, pageSize, keyword); + + List voList = Optional.ofNullable(page.getRecords()).orElse(Collections.emptyList()).stream().map((item) -> { + StudentRegistrationListVo vo = BeanCopyUtils.beanPropertiesCopy(item, StudentRegistrationListVo.class); + GlccRegistrationStudent student = studentApplyService.getById(item.getStudentRegId()); + vo.setUserId(student.getUserId()); + vo.setStudentName(student.getStudentName()); + vo.setSchool(student.getSchool()); + vo.setProfession(student.getProfession()); + vo.setGrade(student.getGrade()); + vo.setLocation(student.getLocation()); + vo.setPhone(student.getPhone()); + vo.setMail(student.getMail()); + vo.setProveAttachmentId(student.getProveAttachmentId()); + GlccRegistrationTask task = applyTaskService.getById(item.getTaskId()); + GlccRegistrationInformation registrationInformation = applyService.getById(task.getRegId()); + vo.setTaskName(task == null ? "" : task.getTaskName()); + vo.setMemoAttachment(busiAttachmentsService.selectByPrimaryKey(item.getMemoAttachmentId())); + vo.setProveAttachment(busiAttachmentsService.selectByPrimaryKey(student.getProveAttachmentId())); + vo.setProjectName(registrationInformation == null ? "" : registrationInformation.getProjectName()); vo.setTutorName(task == null ? "" : task.getTutorName()); vo.setTutorMail(task == null ? "" : task.getTutorMail()); vo.setTutorPhone(task == null ? "" : task.getTutorPhone()); @@ -183,12 +213,12 @@ public class StudentApplyController { @ApiOperation("获取当前用户学生报名信息") @GetMapping("/getUserApplyInfo") public ResponseEntity getUserApplyInfo(Integer userId) { - GlccRegistrationStudent registrationStudent = studentApplyService.getRegistrationStudentByUserId(userId); + GlccRegistrationStudent registrationStudent = studentApplyService.getRegistrationStudentByUserId(userId); StudentRegistrationVo vo = null; - if(registrationStudent !=null){ + if (registrationStudent != null) { vo = BeanCopyUtils.beanPropertiesCopy(registrationStudent, StudentRegistrationVo.class); List list = Optional.ofNullable(studentApplyTaskService.getRegistrationStudentTaskList(registrationStudent.getId())).orElse(Collections.emptyList()) - .stream().map(studentTask ->{ + .stream().map(studentTask -> { StudentRegistrationTaskVo studentRegistrationTaskVo = BeanCopyUtils.beanPropertiesCopy(studentTask, StudentRegistrationTaskVo.class); GlccRegistrationTask task = applyTaskService.getById(studentTask.getTaskId()); studentRegistrationTaskVo.setTaskName(task == null ? "" : task.getTaskName()); @@ -210,8 +240,8 @@ public class StudentApplyController { return DataPacketUtil.badRequest(errors); } UserVo user = userService.getCurrentUser(request); - if (!deleteVo.getIds().isEmpty()){ - deleteVo.getIds().forEach(id ->{ + if (!deleteVo.getIds().isEmpty()) { + deleteVo.getIds().forEach(id -> { GlccRegistrationStudentTask studentTask = studentApplyTaskService.getById(id); GlccRegistrationStudent model = studentApplyService.getById(studentTask.getStudentRegId()); // 自己取消的记录次数,管理员删除不记数 diff --git a/share-model/src/main/java/com/xjy/ai/model/dao/glcc/mapper/GlccRegistrationStudentTaskMapper.java b/share-model/src/main/java/com/xjy/ai/model/dao/glcc/mapper/GlccRegistrationStudentTaskMapper.java index 8fa9782..ad85350 100644 --- a/share-model/src/main/java/com/xjy/ai/model/dao/glcc/mapper/GlccRegistrationStudentTaskMapper.java +++ b/share-model/src/main/java/com/xjy/ai/model/dao/glcc/mapper/GlccRegistrationStudentTaskMapper.java @@ -2,15 +2,41 @@ package com.xjy.ai.model.dao.glcc.mapper; import com.xjy.ai.model.dao.glcc.entity.GlccRegistrationStudentTask; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

* 开源夏令营学生报名课题表 Mapper 接口 *

* - * @author + * @author * @since 2022-05-11 */ public interface GlccRegistrationStudentTaskMapper extends BaseMapper { + @Select("SELECT glcc_registration_student_task.* FROM glcc_registration_student_task " + + " LEFT JOIN glcc_registration_student ON glcc_registration_student_task.student_reg_id=glcc_registration_student.id " + + " LEFT JOIN glcc_registration_task ON glcc_registration_student_task.task_id=glcc_registration_task.id JOIN ( " + + " SELECT student_reg_id,max(enroll_first) AS enroll_first FROM glcc_registration_student_task GROUP BY student_reg_id) b ON glcc_registration_student_task.student_reg_id=b.student_reg_id AND glcc_registration_student_task.enroll_first=b.enroll_first " + + " WHERE (glcc_registration_task.task_name LIKE #{keyword} OR glcc_registration_student.student_name LIKE #{keyword}) " + + " and glcc_registration_student_task.pass_status=1 LIMIT #{offset}, #{pageSize}") + List selectPassAuditStudentTaskList(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize, @Param("keyword") String keyword); + + @Select("SELECT count(1) FROM glcc_registration_student_task " + + " LEFT JOIN glcc_registration_student ON glcc_registration_student_task.student_reg_id=glcc_registration_student.id " + + " LEFT JOIN glcc_registration_task ON glcc_registration_student_task.task_id=glcc_registration_task.id JOIN ( " + + " SELECT student_reg_id,max(enroll_first) AS enroll_first FROM glcc_registration_student_task GROUP BY student_reg_id) b ON glcc_registration_student_task.student_reg_id=b.student_reg_id AND glcc_registration_student_task.enroll_first=b.enroll_first " + + " WHERE (glcc_registration_task.task_name LIKE #{keyword} OR glcc_registration_student.student_name LIKE #{keyword}) " + + " and glcc_registration_student_task.pass_status=1 ") + long selectPassAuditStudentTaskCount(@Param("keyword") String keyword); + +// @Select("SELECT * FROM glcc_registration_student_task " + +// " LEFT join glcc_registration_student ON glcc_registration_student_task.student_reg_id = glcc_registration_student.id " + +// " left join glcc_registration_task on glcc_registration_student_task.task_id = glcc_registration_task.id " + +// " where glcc_registration_task.task_name like #{keyword} or glcc_registration_student.student_name like #{keyword} ") +// List selectStudentTaskListByKeyword(@Param("keyword") String keyword); + } diff --git a/share-model/src/main/java/com/xjy/ai/model/service/glcc/Impl/ApplyTaskServiceImpl.java b/share-model/src/main/java/com/xjy/ai/model/service/glcc/Impl/ApplyTaskServiceImpl.java index ee3482a..a9efc0b 100644 --- a/share-model/src/main/java/com/xjy/ai/model/service/glcc/Impl/ApplyTaskServiceImpl.java +++ b/share-model/src/main/java/com/xjy/ai/model/service/glcc/Impl/ApplyTaskServiceImpl.java @@ -52,7 +52,7 @@ public class ApplyTaskServiceImpl extends ServiceImpl pageList(int curPage, int pageSize, String keyword, List taskIds, List regIds) { Page page = new Page<>(curPage,pageSize); QueryWrapper wrapper = new QueryWrapper<>(); - if (keyword != null) { + if (keyword != null && taskIds.isEmpty()) { wrapper.lambda().like(GlccRegistrationTask::getTaskName, keyword).orderByDesc(GlccRegistrationTask::getSortNo, GlccRegistrationTask::getCreatedOn); } else { wrapper.lambda().orderByDesc(GlccRegistrationTask::getSortNo, GlccRegistrationTask::getCreatedOn); diff --git a/share-model/src/main/java/com/xjy/ai/model/service/glcc/Impl/StudentApplyTaskServiceImpl.java b/share-model/src/main/java/com/xjy/ai/model/service/glcc/Impl/StudentApplyTaskServiceImpl.java index 5ba0142..e21c570 100644 --- a/share-model/src/main/java/com/xjy/ai/model/service/glcc/Impl/StudentApplyTaskServiceImpl.java +++ b/share-model/src/main/java/com/xjy/ai/model/service/glcc/Impl/StudentApplyTaskServiceImpl.java @@ -1,15 +1,12 @@ package com.xjy.ai.model.service.glcc.Impl; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.xjy.ai.model.dao.glcc.entity.GlccRegistrationInformation; import com.xjy.ai.model.dao.glcc.entity.GlccRegistrationStudentTask; -import com.xjy.ai.model.dao.glcc.entity.GlccRegistrationTask; import com.xjy.ai.model.dao.glcc.mapper.GlccRegistrationStudentTaskMapper; import com.xjy.ai.model.service.glcc.StudentApplyTaskService; import com.xjy.ai.model.service.glcc.vo.UpdateRegTaskVo; @@ -79,6 +76,19 @@ public class StudentApplyTaskServiceImpl extends ServiceImpl passPageList(int curPage, int pageSize, String keyword) { + String likeStr = keyword == null ? "%%" : "%" + keyword + "%"; + int offset = (curPage - 1) * pageSize; + List list = baseMapper.selectPassAuditStudentTaskList(offset, pageSize, likeStr); + Page page = new Page<>(); + page.setRecords(list); + page.setTotal(baseMapper.selectPassAuditStudentTaskCount(likeStr)); + page.setPages(curPage); + page.setSize(pageSize); + return page; + } + @Override public boolean auditRegTask(UpdateRegTaskVo updateVo) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); diff --git a/share-model/src/main/java/com/xjy/ai/model/service/glcc/StudentApplyTaskService.java b/share-model/src/main/java/com/xjy/ai/model/service/glcc/StudentApplyTaskService.java index 4f97f84..8982628 100644 --- a/share-model/src/main/java/com/xjy/ai/model/service/glcc/StudentApplyTaskService.java +++ b/share-model/src/main/java/com/xjy/ai/model/service/glcc/StudentApplyTaskService.java @@ -23,6 +23,8 @@ public interface StudentApplyTaskService extends IService pageList(int curPage, int pageSize, List studentIds, Integer taskId); + Page passPageList(int curPage, int pageSize, String keyword); + public List getListByRegIds(List regIds); public boolean auditRegTask(UpdateRegTaskVo updateVo); diff --git a/share-model/src/main/java/com/xjy/ai/model/service/glcc/vo/RegistrationTaskVo.java b/share-model/src/main/java/com/xjy/ai/model/service/glcc/vo/RegistrationTaskVo.java index 2c39ab8..040c0f6 100644 --- a/share-model/src/main/java/com/xjy/ai/model/service/glcc/vo/RegistrationTaskVo.java +++ b/share-model/src/main/java/com/xjy/ai/model/service/glcc/vo/RegistrationTaskVo.java @@ -3,6 +3,7 @@ package com.xjy.ai.model.service.glcc.vo; import javax.validation.constraints.NotEmpty; import java.util.Date; +import java.util.List; public class RegistrationTaskVo { @@ -36,6 +37,8 @@ public class RegistrationTaskVo { private Integer sortNo; + private List passList; + public Integer getId() { @@ -149,4 +152,12 @@ public class RegistrationTaskVo { public void setProjectType(String projectType) { this.projectType = projectType; } + + public List getPassList() { + return passList; + } + + public void setPassList(List passList) { + this.passList = passList; + } }