From 90fbda5e29472282ea06ddf3d6c130b03ca51218 Mon Sep 17 00:00:00 2001 From: Xubx <1827135378@qq.com> Date: Tue, 11 Mar 2025 13:37:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=96=E6=A0=A1=E8=80=81=E5=B8=88=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contoller/CeesWaiTeacherController.java | 42 +++++--- .../jeecg/modules/entity/CeesWaiTeacher.java | 5 +- .../service/ICeesWaiTeacherService.java | 15 ++- .../impl/CeesDormitoryInfoServiceImpl.java | 8 +- .../impl/CeesWaiTeacherServiceImpl.java | 102 ++++++++++++++++-- 5 files changed, 146 insertions(+), 26 deletions(-) diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java index 605bdb57..f0f5b0e6 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/contoller/CeesWaiTeacherController.java @@ -1,18 +1,14 @@ package org.jeecg.modules.contoller; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; -import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.entity.CeesWaiTeacher; -import org.jeecg.modules.enums.MajorEnum; import org.jeecg.modules.service.ICeesWaiTeacherService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -37,11 +33,37 @@ public class CeesWaiTeacherController extends JeecgController updateDormitory(@RequestParam String id, @RequestParam String dormitory){ + return ceesWaiTeacherService.updateDormitory(id,dormitory); } + /** + * 取消确认报到 + * @param id + * @return {@link Result } + */ + @GetMapping("/cancelCheckIn") + public Result cancelCheckIn(@RequestParam String id){ + return ceesWaiTeacherService.cancelCheckIn(id); + } + + /** + * 确认报到 + * @param id + * @return {@link Result } + */ + @GetMapping("/confirmCheckIn") + public Result confirmCheckIn(@RequestParam String id){ + return ceesWaiTeacherService.confirmCheckIn(id); + } + /** @@ -60,11 +82,7 @@ public class CeesWaiTeacherController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(ceesWaiTeacher, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); - IPage pageList = ceesWaiTeacherService.page(page, queryWrapper); - pageList.convert(e->e.setMajorIdDescription(MajorEnum.describe(e.getMajorId()))); - return Result.OK(pageList); + return Result.OK(ceesWaiTeacherService.queryPageList(ceesWaiTeacher,pageNo,pageSize,req)); } /** diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesWaiTeacher.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesWaiTeacher.java index d3f4840d..2fe4f0c0 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesWaiTeacher.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/entity/CeesWaiTeacher.java @@ -125,7 +125,10 @@ public class CeesWaiTeacher implements Serializable { /**宿舍信息*/ @Excel(name = "宿舍信息", width = 15) @ApiModelProperty(value = "宿舍信息") - private String dormitory; + private String dormitoryId; + @ApiModelProperty(value = "宿舍信息") + @TableField(exist = false) + private String dormitoryName; /**是否住宿*/ @Excel(name = "是否住宿", width = 15) @ApiModelProperty(value = "是否住宿") diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICeesWaiTeacherService.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICeesWaiTeacherService.java index 497bd7f1..aa651657 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICeesWaiTeacherService.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/ICeesWaiTeacherService.java @@ -1,9 +1,13 @@ package org.jeecg.modules.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.CeesWaiTeacher; +import org.springframework.web.bind.annotation.RequestParam; + +import javax.servlet.http.HttpServletRequest; /** * @Description: 外校老师管理 @@ -13,5 +17,14 @@ import org.jeecg.modules.entity.CeesWaiTeacher; */ public interface ICeesWaiTeacherService extends IService { - Result updataDormitory(String id, String dormitory); + Result updateDormitory(String id, String dormitory); + + IPage queryPageList(CeesWaiTeacher ceesWaiTeacher, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req); + + Result cancelCheckIn(String id); + + Result confirmCheckIn(String id); } diff --git a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesDormitoryInfoServiceImpl.java b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesDormitoryInfoServiceImpl.java index b776397b..0211a675 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesDormitoryInfoServiceImpl.java +++ b/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/modules/service/impl/CeesDormitoryInfoServiceImpl.java @@ -9,11 +9,9 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.CeesDormitoryInfo; import org.jeecg.modules.mapper.CeesDormitoryInfoMapper; import org.jeecg.modules.service.ICeesDormitoryInfoService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.lang.reflect.Array; -import java.util.Arrays; +import javax.annotation.Resource; import java.util.List; /** @@ -25,7 +23,7 @@ import java.util.List; @Service public class CeesDormitoryInfoServiceImpl extends ServiceImpl implements ICeesDormitoryInfoService { - @Autowired + @Resource private CeesDormitoryInfoMapper ceesDormitoryInfoMapper; @Override @@ -33,6 +31,7 @@ public class CeesDormitoryInfoServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.gt(CeesDormitoryInfo::getDormitoryNum, 0); if (sex != null) { wrapper.eq(CeesDormitoryInfo::getDormitoryType, type); } @@ -40,6 +39,7 @@ public class CeesDormitoryInfoServiceImpl extends ServiceImpl implements ICeesWaiTeacherService { - @Autowired - private CeesWaiTeacherMapper ceesWaiTeacherMapper; + private final CeesWaiTeacherMapper ceesWaiTeacherMapper; + private final CeesDormitoryInfoMapper ceesDormitoryInfoMapper; + @Override - public Result updataDormitory(String id, String dormitory) { + public Result updateDormitory(String id, String dormitoryId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); - wrapper.eq(CeesWaiTeacher::getUserId,id); + wrapper.eq(CeesWaiTeacher::getUserId, id); CeesWaiTeacher ceesWaiTeacher = ceesWaiTeacherMapper.selectOne(wrapper); - ceesWaiTeacher.setDormitory(dormitory); - int result = ceesWaiTeacherMapper.updateById(ceesWaiTeacher); + ceesWaiTeacher.setDormitoryId(dormitoryId); + // 外校数据更新 + int result = ceesWaiTeacherMapper.updateById(ceesWaiTeacher); + CeesDormitoryInfo ceesDormitoryInfo = null; + // 宿舍信息数据更新 + if (result == 1 ) { + ceesDormitoryInfo = ceesDormitoryInfoMapper.selectById(dormitoryId); + if (ceesDormitoryInfo.getDormitoryNum() > 0) { + ceesDormitoryInfo.setDormitoryNum(ceesDormitoryInfo.getDormitoryNum() - 1); + ceesDormitoryInfoMapper.updateById(ceesDormitoryInfo); + } else { + return Result.error("宿舍人数已满"); + } + } + // 当宿舍人数为0,修改宿舍状态 + if (ceesDormitoryInfo != null) { + if (ceesDormitoryInfo.getDormitoryNum() == 0) { + ceesDormitoryInfo.setDormitoryStatus(1); + ceesDormitoryInfoMapper.updateById(ceesDormitoryInfo); + } + } return Result.ok("更新成功"); } + + /** + * @param ceesWaiTeacher + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @Override + public IPage queryPageList(CeesWaiTeacher ceesWaiTeacher, Integer pageNo, Integer pageSize, HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(ceesWaiTeacher, req.getParameterMap()); + Page page = new Page<>(pageNo, pageSize); + IPage pageList = page(page, queryWrapper); + Set dormitoryIdList = pageList.getRecords().stream().map(CeesWaiTeacher::getDormitoryId).collect(Collectors.toSet()); + LambdaQueryWrapper dormitoryWrapper = Wrappers.lambdaQuery(CeesDormitoryInfo.class).in(CeesDormitoryInfo::getId, dormitoryIdList); + List ceesDormitoryInfos = ceesDormitoryInfoMapper.selectList(dormitoryWrapper); + pageList.convert(e->{ + e.setDormitoryName(ceesDormitoryInfos + .stream() + .filter(dormitoryInfo -> dormitoryInfo.getId().equals(e.getDormitoryId())) + .findFirst() + .orElse(new CeesDormitoryInfo()) + .getDormitory()); + e.setMajorIdDescription(MajorEnum.describe(e.getMajorId())); + return e; + });; + return pageList; + } + + /** + * @param id + * @return + */ + @Override + public Result cancelCheckIn(String id) { + CeesWaiTeacher ceesWaiTeacher = ceesWaiTeacherMapper.selectById(id); + ceesWaiTeacher.setStatus(1); + ceesWaiTeacherMapper.updateById(ceesWaiTeacher); + return Result.ok("撤销成功"); + } + + /** + * @param id + * @return + */ + @Override + public Result confirmCheckIn(String id) { + CeesWaiTeacher ceesWaiTeacher = ceesWaiTeacherMapper.selectById(id); + ceesWaiTeacher.setStatus(0); + ceesWaiTeacherMapper.updateById(ceesWaiTeacher); + return Result.ok("确认成功"); + } }