liql před 3 roky
rodič
revize
d2cc132bec
62 změnil soubory, kde provedl 3453 přidání a 24 odebrání
  1. 5 0
      ruoyi-admin/pom.xml
  2. 1 1
      ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
  3. 25 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuBaseInfoController.java
  4. 164 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuBookApplyController.java
  5. 113 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuClassBookConfigController.java
  6. 159 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuOutSchoolApplyController.java
  7. 159 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuQuitSchoolApplyController.java
  8. 3 3
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuRoomController.java
  9. 125 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuTextBookController.java
  10. 21 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
  11. 5 2
      ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
  12. 12 0
      ruoyi-admin/src/main/resources/application.yml
  13. 2 1
      ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml
  14. 1 1
      ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
  15. 1 0
      ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
  16. 123 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/StuBaseInfo.java
  17. 91 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/StuBookApply.java
  18. 12 1
      ruoyi-system/src/main/java/com/ruoyi/system/domain/StuClass.java
  19. 67 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/StuClassBookConfig.java
  20. 75 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/StuOutSchoolApply.java
  21. 75 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/StuQuitSchoolApply.java
  22. 12 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/StuRoom.java
  23. 120 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/StuTextBook.java
  24. 24 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/param/ApplyListParam.java
  25. 24 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/param/ClassBookConfigParam.java
  26. 37 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ApplyListVo.java
  27. 24 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/BookConfigVo.java
  28. 24 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ClassTeacherVo.java
  29. 39 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RoomStudentVo.java
  30. 8 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuBaseInfoMapper.java
  31. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuBookApplyMapper.java
  32. 71 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuClassBookConfigMapper.java
  33. 64 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuOutSchoolApplyMapper.java
  34. 64 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuQuitSchoolApplyMapper.java
  35. 1 1
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuRoomMapper.java
  36. 77 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuTextBookMapper.java
  37. 8 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
  38. 9 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/IStuBaseInfoService.java
  39. 63 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/IStuBookApplyService.java
  40. 64 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/IStuClassBookConfigService.java
  41. 64 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/IStuOutSchoolApplyService.java
  42. 64 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/IStuQuitSchoolApplyService.java
  43. 1 1
      ruoyi-system/src/main/java/com/ruoyi/system/service/IStuRoomService.java
  44. 76 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/IStuTextBookService.java
  45. 8 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
  46. 22 2
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuBaseInfoServiceImpl.java
  47. 137 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuBookApplyServiceImpl.java
  48. 122 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuClassBookConfigServiceImpl.java
  49. 122 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuOutSchoolApplyServiceImpl.java
  50. 122 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuQuitSchoolApplyServiceImpl.java
  51. 2 2
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuRoomServiceImpl.java
  52. 124 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuTextBookServiceImpl.java
  53. 11 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
  54. 51 5
      ruoyi-system/src/main/resources/mapper/department/StuBaseInfoMapper.xml
  55. 99 0
      ruoyi-system/src/main/resources/mapper/department/StuBookApplyMapper.xml
  56. 75 0
      ruoyi-system/src/main/resources/mapper/department/StuClassBookConfigMapper.xml
  57. 5 1
      ruoyi-system/src/main/resources/mapper/department/StuClassMapper.xml
  58. 95 0
      ruoyi-system/src/main/resources/mapper/department/StuOutSchoolApplyMapper.xml
  59. 95 0
      ruoyi-system/src/main/resources/mapper/department/StuQuitSchoolApplyMapper.xml
  60. 108 0
      ruoyi-system/src/main/resources/mapper/department/StuTextBookMapper.xml
  61. 8 3
      ruoyi-system/src/main/resources/mapper/dorm/StuRoomMapper.xml
  62. 7 0
      ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

+ 5 - 0
ruoyi-admin/pom.xml

@@ -40,6 +40,11 @@
             <artifactId>knife4j-spring-ui</artifactId>
             <version>2.0.8</version>
         </dependency>
+        <!-- 集成actuator实现优雅关闭应用 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
 
         <!--防止进入swagger页面报类型转换错误,排除2.9.2中的引用,手动增加1.5.21版本-->
         <dependency>

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java

@@ -16,7 +16,7 @@ public class RuoYiApplication
     {
         // System.setProperty("spring.devtools.restart.enabled", "false");
         SpringApplication.run(RuoYiApplication.class, args);
-        System.out.println("(♥◠‿◠)ノ゙  校新生信息管理系统启动成功   ლ(´ڡ`ლ)゙  \n" +
+        System.out.println("(♥◠‿◠)ノ゙  贵州省林业学校新生信息管理系统启动成功   ლ(´ڡ`ლ)゙  \n" +
                 " .-------.       ____     __        \n" +
                 " |  _ _   \\      \\   \\   /  /    \n" +
                 " | ( ' )  |       \\  _. /  '       \n" +

+ 25 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuBaseInfoController.java

@@ -70,6 +70,22 @@ public class StuBaseInfoController extends BaseController
         return getDataTable(list);
     }
 
+    /**
+     * 查询所有学生列表
+     */
+    @PreAuthorize("@ss.hasPermi('student:base:list')")
+    @GetMapping("/myClassStudentList")
+    @ApiOperation(value = "我班学生列表")
+    public TableDataInfo myClassStudentList(StuBaseInfo stuBaseInfo)
+    {
+        startPage();
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuBaseInfo.setUserId(userId);
+        List<StuBaseInfo> list = stuBaseInfoService.selectStuBaseInfoList(stuBaseInfo);
+        return getDataTable(list);
+    }
+
+
     /**
      * 查询未报到的学生
      */
@@ -381,6 +397,15 @@ public class StuBaseInfoController extends BaseController
         return util.exportExcel(list, "学生财务数据");
     }
 
+    /**
+     * 根据寝室id获取学生列表
+     */
+    @GetMapping(value = "/query-list/{roomId}")
+    @ApiOperation("根据寝室id获取学生列表")
+    public AjaxResult getList(@PathVariable("roomId") Long roomId)
+    {
+        return AjaxResult.success(stuBaseInfoService.selectStudentByRoomId(roomId));
+    }
 
 
 }

+ 164 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuBookApplyController.java

@@ -0,0 +1,164 @@
+package com.ruoyi.web.controller.student;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.StuBaseInfo;
+import com.ruoyi.system.domain.StuTextBook;
+import com.ruoyi.system.domain.param.ApplyListParam;
+import com.ruoyi.system.domain.vo.ApplyListVo;
+import com.ruoyi.system.service.IStuBaseInfoService;
+import com.ruoyi.system.service.IStuTextBookService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.StuBookApply;
+import com.ruoyi.system.service.IStuBookApplyService;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 教材申请Controller
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@RestController
+@RequestMapping("/apply/book")
+@Api(tags = {"教材申请管理接口"})
+public class StuBookApplyController extends BaseController
+{
+    @Autowired
+    private IStuBookApplyService stuBookApplyService;
+
+    @Autowired
+    private IStuBaseInfoService stuBaseInfoService;
+
+
+    /**
+     * 查询教材申请列表
+     */
+    @PreAuthorize("@ss.hasPermi('apply:book:list')")
+    @GetMapping("/list")
+    @ApiOperation("教材申请审批列表接口")
+    public TableDataInfo list(ApplyListParam param)
+    {
+        startPage();
+        List<ApplyListVo> list = stuBookApplyService.selectStuBookApplyList(param);
+        return getDataTable(list);
+    }
+
+    /**
+     * 我的教材申请列表
+     */
+    @PreAuthorize("@ss.hasPermi('apply:book:myList')")
+    @GetMapping("/myList")
+    @ApiOperation("我的教材申请列表接口")
+    public TableDataInfo myList(ApplyListParam param)
+    {
+        startPage();
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        param.setCreateBy(userId);
+
+        List<ApplyListVo> list = stuBookApplyService.selectStuBookApplyList(param);
+        return getDataTable(list);
+    }
+
+    /**
+     * 获取教材申请详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('department:apply:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(stuBookApplyService.selectStuBookApplyById(id));
+    }
+
+    /**
+     * 新增教材申请
+     */
+    @PreAuthorize("@ss.hasPermi('apply:book:add')")
+    @Log(title = "教材申请", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation("新增发放教材申请")
+    public AjaxResult add(@RequestBody StuBookApply stuBookApply)
+    {
+        return toAjax(stuBookApplyService.insertStuBookApply(stuBookApply));
+    }
+
+    /**
+     * 修改教材申请
+     */
+    @PreAuthorize("@ss.hasPermi('apply:book:edit')")
+    @Log(title = "教材申请", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody StuBookApply stuBookApply)
+    {
+        return toAjax(stuBookApplyService.updateStuBookApply(stuBookApply));
+    }
+
+    /**
+     * 删除教材申请
+     */
+    @PreAuthorize("@ss.hasPermi('apply:book:remove')")
+    @Log(title = "教材申请", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    @ApiOperation(value = "删除")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(stuBookApplyService.deleteStuBookApplyByIds(ids));
+    }
+
+    /**
+     * 发放教材审核
+     */
+    @PreAuthorize("@ss.hasPermi('apply:book:approval')")
+    @Log(title = "教材申请", businessType = BusinessType.UPDATE)
+    @PutMapping("/approval")
+    @ApiOperation(value = "审批")
+    public AjaxResult approval(@RequestBody StuBookApply stuBookApply)
+    {
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuBookApply.setUpdateBy(String.valueOf(userId));
+
+        StuBaseInfo student = new StuBaseInfo();
+        student.setUserId(stuBookApply.getStudentId());
+        student.setBookApplyStatus(2);
+        stuBaseInfoService.updateStuBaseInfo(student);
+
+        return toAjax(stuBookApplyService.updateStuBookApply(stuBookApply));
+    }
+
+    /**
+     * 教材发放
+     */
+    @PreAuthorize("@ss.hasPermi('apply:book:grant')")
+    @Log(title = "教材申请", businessType = BusinessType.UPDATE)
+    @PutMapping("/grant")
+    @ApiOperation(value = "发放")
+    public AjaxResult grant(@RequestBody StuBookApply stuBookApply)
+    {
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuBookApply.setUpdateBy(String.valueOf(userId));
+
+        StuBaseInfo student = new StuBaseInfo();
+        student.setUserId(stuBookApply.getStudentId());
+        student.setBookApplyStatus(3);
+        stuBaseInfoService.updateStuBaseInfo(student);
+
+        return toAjax(stuBookApplyService.updateStuBookApply(stuBookApply));
+    }
+
+}

+ 113 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuClassBookConfigController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.web.controller.student;
+
+import java.util.List;
+
+import com.ruoyi.system.domain.param.ClassBookConfigParam;
+import com.ruoyi.system.domain.vo.BookConfigVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.StuClassBookConfig;
+import com.ruoyi.system.service.IStuClassBookConfigService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 教材配置Controller
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@RestController
+@RequestMapping("/book/config")
+@Api(tags = {"班级配置教材管理接口"})
+public class StuClassBookConfigController extends BaseController
+{
+    @Autowired
+    private IStuClassBookConfigService stuClassBookConfigService;
+
+    /**
+     * 查询教材配置列表
+     */
+    @PreAuthorize("@ss.hasPermi('book:config:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "根据班级id获取教材配置列表接口")
+    public AjaxResult list(Long classId)
+    {
+        List<BookConfigVo> list = stuClassBookConfigService.selectClassBookConfigListByClassId(classId);
+        return AjaxResult.success(list);
+    }
+
+
+    /**
+     * 获取教材配置详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('book:config:query')")
+    @GetMapping(value = "/{classId}")
+    public AjaxResult getInfo(@PathVariable("classId") Long classId)
+    {
+        return AjaxResult.success(stuClassBookConfigService.selectStuClassBookConfigById(classId));
+    }
+
+    /**
+     * 新增教材配置
+     */
+    @PreAuthorize("@ss.hasPermi('book:config:add')")
+    @Log(title = "教材配置", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "添加班级教材配置")
+    public AjaxResult add(@RequestBody StuClassBookConfig stuClassBookConfig)
+    {
+        return toAjax(stuClassBookConfigService.insertStuClassBookConfig(stuClassBookConfig));
+    }
+
+    /**
+     * 修改教材配置
+     */
+    @PreAuthorize("@ss.hasPermi('book:config:edit')")
+    @Log(title = "教材配置", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody StuClassBookConfig stuClassBookConfig)
+    {
+        return toAjax(stuClassBookConfigService.updateStuClassBookConfig(stuClassBookConfig));
+    }
+
+    /**
+     * 删除教材配置
+     */
+    @PreAuthorize("@ss.hasPermi('book:config:remove')")
+    @Log(title = "教材配置", businessType = BusinessType.DELETE)
+	@DeleteMapping("/batchRemove")
+    @ApiOperation(value = "批量删除班级教材配置")
+    public AjaxResult remove(@RequestBody ClassBookConfigParam[] params)
+    {
+        return toAjax(stuClassBookConfigService.deleteStuClassBookConfigByParams(params));
+    }
+
+
+    /**
+     * 删除教材配置
+     */
+    @PreAuthorize("@ss.hasPermi('book:config:remove')")
+    @Log(title = "教材配置", businessType = BusinessType.DELETE)
+    @DeleteMapping("/singleRemove")
+    @ApiOperation(value = "单个删除班级教材配置")
+    public AjaxResult singleRemove(@RequestBody ClassBookConfigParam param)
+    {
+        return toAjax(stuClassBookConfigService.deleteStuClassBookConfigByParam(param));
+    }
+}

+ 159 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuOutSchoolApplyController.java

@@ -0,0 +1,159 @@
+package com.ruoyi.web.controller.student;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.StuBaseInfo;
+import com.ruoyi.system.domain.param.ApplyListParam;
+import com.ruoyi.system.domain.vo.ApplyListVo;
+import com.ruoyi.system.service.IStuBaseInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.StuOutSchoolApply;
+import com.ruoyi.system.service.IStuOutSchoolApplyService;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 失学申请Controller
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@RestController
+@RequestMapping("/apply/out")
+@Api(tags = {"失学申请管理接口"})
+public class StuOutSchoolApplyController extends BaseController
+{
+    @Autowired
+    private IStuOutSchoolApplyService stuOutSchoolApplyService;
+    @Autowired
+    private IStuBaseInfoService stuBaseInfoService;
+
+    /**
+     * 查询失学申请列表
+     */
+    @PreAuthorize("@ss.hasPermi('apply:out:list')")
+    @GetMapping("/list")
+    @ApiOperation("失学申请审批列表接口")
+    public TableDataInfo list(ApplyListParam param)
+    {
+        startPage();
+        List<ApplyListVo> list = stuOutSchoolApplyService.selectStuOutSchoolApplyList(param);
+        return getDataTable(list);
+    }
+
+    /**
+     * 我的失学申请列表
+     */
+    @PreAuthorize("@ss.hasPermi('apply:out:mylist')")
+    @GetMapping("/myList")
+    @ApiOperation("我的失学申请列表接口")
+    public TableDataInfo myList(ApplyListParam param)
+    {
+        startPage();
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        param.setCreateBy(userId);
+        List<ApplyListVo> list = stuOutSchoolApplyService.selectStuOutSchoolApplyList(param);
+        return getDataTable(list);
+    }
+
+
+    /**
+     * 获取失学申请详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('apply:out:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(stuOutSchoolApplyService.selectStuOutSchoolApplyById(id));
+    }
+
+    /**
+     * 新增失学申请
+     */
+    @PreAuthorize("@ss.hasPermi('apply:out:add')")
+    @Log(title = "失学申请", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation("新增失学申请接口")
+    public AjaxResult add(@RequestBody StuOutSchoolApply stuOutSchoolApply)
+    {
+        return toAjax(stuOutSchoolApplyService.insertStuOutSchoolApply(stuOutSchoolApply));
+    }
+
+    /**
+     * 修改失学申请
+     */
+    @PreAuthorize("@ss.hasPermi('apply:out:edit')")
+    @Log(title = "失学申请", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody StuOutSchoolApply stuOutSchoolApply)
+    {
+        return toAjax(stuOutSchoolApplyService.updateStuOutSchoolApply(stuOutSchoolApply));
+    }
+
+    /**
+     * 删除失学申请
+     */
+    @PreAuthorize("@ss.hasPermi('apply:out:remove')")
+    @Log(title = "失学申请", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(stuOutSchoolApplyService.deleteStuOutSchoolApplyByIds(ids));
+    }
+
+
+    /**
+     * 失学审批
+     */
+    @PreAuthorize("@ss.hasPermi('apply:out:approval')")
+    @Log(title = "失学申请", businessType = BusinessType.UPDATE)
+    @PutMapping("/approval")
+    @ApiOperation(value = "失学审批")
+    public AjaxResult approval(@RequestBody StuOutSchoolApply outSchoolApply)
+    {
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        outSchoolApply.setUpdateBy(String.valueOf(userId));
+
+        StuBaseInfo student = new StuBaseInfo();
+        student.setUserId(outSchoolApply.getStudentId());
+        student.setOutApplyStatus(2);
+        stuBaseInfoService.updateStuBaseInfo(student);
+
+        return toAjax(stuOutSchoolApplyService.updateStuOutSchoolApply(outSchoolApply));
+    }
+
+    /**
+     * 发放教材
+     */
+    @PreAuthorize("@ss.hasPermi('apply:out:finish')")
+    @Log(title = "失学申请", businessType = BusinessType.UPDATE)
+    @PutMapping("/finish")
+    @ApiOperation(value = "完成失学")
+    public AjaxResult finish(@RequestBody StuOutSchoolApply outSchoolApply)
+    {
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        outSchoolApply.setUpdateBy(String.valueOf(userId));
+
+        StuBaseInfo student = new StuBaseInfo();
+        student.setUserId(outSchoolApply.getStudentId());
+        student.setOutApplyStatus(3);
+        stuBaseInfoService.updateStuBaseInfo(student);
+
+        return toAjax(stuOutSchoolApplyService.updateStuOutSchoolApply(outSchoolApply));
+    }
+}

+ 159 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuQuitSchoolApplyController.java

@@ -0,0 +1,159 @@
+package com.ruoyi.web.controller.student;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.StuBaseInfo;
+import com.ruoyi.system.domain.param.ApplyListParam;
+import com.ruoyi.system.domain.vo.ApplyListVo;
+import com.ruoyi.system.service.IStuBaseInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.StuQuitSchoolApply;
+import com.ruoyi.system.service.IStuQuitSchoolApplyService;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 退学申请Controller
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@RestController
+@RequestMapping("/apply/quit")
+@Api(tags = {"退学申请管理接口"})
+public class StuQuitSchoolApplyController extends BaseController
+{
+    @Autowired
+    private IStuQuitSchoolApplyService stuQuitSchoolApplyService;
+    @Autowired
+    private IStuBaseInfoService stuBaseInfoService;
+
+    /**
+     * 查询退学申请列表
+     */
+    @PreAuthorize("@ss.hasPermi('apply:quit:list')")
+    @GetMapping("/list")
+    @ApiOperation("退学申请审批列表接口")
+    public TableDataInfo list(ApplyListParam param)
+    {
+        startPage();
+        List<ApplyListVo> list = stuQuitSchoolApplyService.selectStuQuitSchoolApplyList(param);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询退学申请列表
+     */
+    @PreAuthorize("@ss.hasPermi('apply:quit:mylist')")
+    @GetMapping("/myList")
+    @ApiOperation("我的退学申请列表接口")
+    public TableDataInfo myList(ApplyListParam param)
+    {
+        startPage();
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        param.setCreateBy(userId);
+
+        List<ApplyListVo> list = stuQuitSchoolApplyService.selectStuQuitSchoolApplyList(param);
+        return getDataTable(list);
+    }
+
+    /**
+     * 获取退学申请详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('apply:quit:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(stuQuitSchoolApplyService.selectStuQuitSchoolApplyById(id));
+    }
+
+    /**
+     * 新增退学申请
+     */
+    @PreAuthorize("@ss.hasPermi('apply:quit:add')")
+    @Log(title = "退学申请", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation("新增退学申请接口")
+    public AjaxResult add(@RequestBody StuQuitSchoolApply stuQuitSchoolApply)
+    {
+        return toAjax(stuQuitSchoolApplyService.insertStuQuitSchoolApply(stuQuitSchoolApply));
+    }
+
+    /**
+     * 修改退学申请
+     */
+    @PreAuthorize("@ss.hasPermi('apply:quit:edit')")
+    @Log(title = "退学申请", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody StuQuitSchoolApply stuQuitSchoolApply)
+    {
+        return toAjax(stuQuitSchoolApplyService.updateStuQuitSchoolApply(stuQuitSchoolApply));
+    }
+
+    /**
+     * 删除退学申请
+     */
+    @PreAuthorize("@ss.hasPermi('apply:quit:remove')")
+    @Log(title = "退学申请", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(stuQuitSchoolApplyService.deleteStuQuitSchoolApplyByIds(ids));
+    }
+
+    /**
+     * 退学审批
+     */
+    @PreAuthorize("@ss.hasPermi('apply:quit:approval')")
+    @Log(title = "退学申请", businessType = BusinessType.UPDATE)
+    @PutMapping("/approval")
+    @ApiOperation(value = "退学审批")
+    public AjaxResult approval(@RequestBody StuQuitSchoolApply quitSchoolApply)
+    {
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        quitSchoolApply.setUpdateBy(String.valueOf(userId));
+
+        StuBaseInfo student = new StuBaseInfo();
+        student.setUserId(quitSchoolApply.getStudentId());
+        student.setQuitApplyStatus(2);
+        stuBaseInfoService.updateStuBaseInfo(student);
+
+        return toAjax(stuQuitSchoolApplyService.updateStuQuitSchoolApply(quitSchoolApply));
+    }
+
+    /**
+     * 完成退学
+     */
+    @PreAuthorize("@ss.hasPermi('apply:quit:finish')")
+    @Log(title = "退学申请", businessType = BusinessType.UPDATE)
+    @PutMapping("/finish")
+    @ApiOperation(value = "完成退学")
+    public AjaxResult finish(@RequestBody StuQuitSchoolApply quitSchoolApply)
+    {
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        quitSchoolApply.setUpdateBy(String.valueOf(userId));
+
+        StuBaseInfo student = new StuBaseInfo();
+        student.setUserId(quitSchoolApply.getStudentId());
+        student.setQuitApplyStatus(3);
+        stuBaseInfoService.updateStuBaseInfo(student);
+
+        return toAjax(stuQuitSchoolApplyService.updateStuQuitSchoolApply(quitSchoolApply));
+    }
+
+}

+ 3 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuRoomController.java

@@ -108,10 +108,10 @@ public class StuRoomController extends BaseController
     /**
      * 获取专业列表
      */
-    @GetMapping(value = "/query-list/{buildingId}")
+    @GetMapping(value = "/query-list/{buildingId}/{roomType}")
     @ApiOperation("根据楼宇id获取寝室列表")
-    public TableDataInfo getList(@PathVariable("buildingId") Long buildingId)
+    public TableDataInfo getList(@PathVariable("buildingId") Long buildingId,@PathVariable("roomType") Integer roomType)
     {
-        return getDataTable(stuRoomService.queryRoomByBuildingId(buildingId));
+        return getDataTable(stuRoomService.queryRoomByBuildingId(buildingId,roomType));
     }
 }

+ 125 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/student/StuTextBookController.java

@@ -0,0 +1,125 @@
+package com.ruoyi.web.controller.student;
+
+import java.util.List;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.StuTextBook;
+import com.ruoyi.system.service.IStuTextBookService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 教材Controller
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@RestController
+@RequestMapping("/system/book")
+@Api(tags = {"教材管理接口"})
+public class StuTextBookController extends BaseController
+{
+    @Autowired
+    private IStuTextBookService stuTextBookService;
+
+    /**
+     * 查询教材列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:book:list')")
+    @GetMapping("/list")
+    @ApiOperation(value = "列表")
+    public TableDataInfo list(StuTextBook stuTextBook)
+    {
+        startPage();
+        List<StuTextBook> list = stuTextBookService.selectStuTextBookList(stuTextBook);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出教材列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:book:export')")
+    @Log(title = "教材", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    @ApiOperation(value = "导出")
+    public AjaxResult export(StuTextBook stuTextBook)
+    {
+        List<StuTextBook> list = stuTextBookService.selectStuTextBookList(stuTextBook);
+        ExcelUtil<StuTextBook> util = new ExcelUtil<StuTextBook>(StuTextBook.class);
+        return util.exportExcel(list, "book");
+    }
+
+    /**
+     * 获取教材详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:book:query')")
+    @GetMapping(value = "/{id}")
+    @ApiOperation(value = "详情")
+    public AjaxResult getInfo(@PathVariable("id") String id)
+    {
+        return AjaxResult.success(stuTextBookService.selectStuTextBookById(id));
+    }
+
+    /**
+     * 新增教材
+     */
+    @PreAuthorize("@ss.hasPermi('system:book:add')")
+    @Log(title = "教材", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation(value = "新增")
+    public AjaxResult add(@RequestBody StuTextBook stuTextBook)
+    {
+        return toAjax(stuTextBookService.insertStuTextBook(stuTextBook));
+    }
+
+    /**
+     * 修改教材
+     */
+    @PreAuthorize("@ss.hasPermi('system:book:edit')")
+    @Log(title = "教材", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @ApiOperation(value = "修改")
+    public AjaxResult edit(@RequestBody StuTextBook stuTextBook)
+    {
+        return toAjax(stuTextBookService.updateStuTextBook(stuTextBook));
+    }
+
+    /**
+     * 删除教材
+     */
+    @PreAuthorize("@ss.hasPermi('system:book:remove')")
+    @Log(title = "教材", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    @ApiOperation(value = "删除")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        return toAjax(stuTextBookService.deleteStuTextBookByIds(ids));
+    }
+
+
+    /**
+     * 删除教材
+     */
+    @PreAuthorize("@ss.hasPermi('system:book:list')")
+    @GetMapping("/bookList")
+    @ApiOperation(value = "教材配置列表")
+    public AjaxResult bookList()
+    {
+        return AjaxResult.success(stuTextBookService.selectClassBookList());
+    }
+}

+ 21 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java

@@ -2,6 +2,10 @@ package com.ruoyi.web.controller.system;
 
 import java.util.List;
 import java.util.stream.Collectors;
+
+import com.ruoyi.system.domain.vo.ClassTeacherVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -39,6 +43,7 @@ import com.ruoyi.system.service.ISysUserService;
  */
 @RestController
 @RequestMapping("/system/user")
+@Api(tags = {"系统用户管理接口"})
 public class SysUserController extends BaseController
 {
     @Autowired
@@ -202,4 +207,20 @@ public class SysUserController extends BaseController
         user.setUpdateBy(SecurityUtils.getUsername());
         return toAjax(userService.updateUserStatus(user));
     }
+
+    /**
+     * @Description 查询班主任列表
+     * @return com.ruoyi.common.core.domain.AjaxResult
+     */
+    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
+    @PreAuthorize("@ss.hasPermi('system:user:list')")
+    @ApiOperation("获取班主任用户列表接口")
+    @GetMapping("/classTearcherList")
+    public AjaxResult queryClassTeacherList()
+    {
+        List<ClassTeacherVo> list = userService.selectUserByClassTeacher();
+        return AjaxResult.success(list);
+    }
+
+
 }

+ 5 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java

@@ -2,6 +2,8 @@ package com.ruoyi.web.core.config;
 
 import java.util.ArrayList;
 import java.util.List;
+
+import io.swagger.annotations.ApiModel;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
@@ -58,8 +60,9 @@ public class SwaggerConfig
                 // 扫描所有有注解的api,用这种方式更灵活
                 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                 // 扫描指定包中的swagger注解
-                // .apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger"))
-                // 扫描所有 .apis(RequestHandlerSelectors.any())
+                .apis(RequestHandlerSelectors.basePackage("com.ruoyi.web.controller"))
+                // 扫描所有
+                //.apis(RequestHandlerSelectors.any())
                 .paths(PathSelectors.any())
                 .build()
                 /* 设置安全模式,swagger可以设置访问token */

+ 12 - 0
ruoyi-admin/src/main/resources/application.yml

@@ -78,6 +78,16 @@ spring:
         max-active: 8
         # #连接池最大阻塞等待时间(使用负值表示没有限制)
         max-wait: -1ms
+# 配置优雅地关闭后台服务
+management:
+  endpoint:
+    shutdown:
+      enabled: true
+  endpoints:
+    web:
+      exposure:
+        include: "shutdown"
+      base-path: /monitor
 
 # token配置
 token:
@@ -87,6 +97,8 @@ token:
     secret: abcdefghijklmnopqrstuvwxyz
     # 令牌有效期(默认30分钟)
     expireTime: 30
+    # 是否允许账户多终端同时登录(true允许 false不允许)
+    soloLogin: false
 
 # MyBatis配置
 mybatis:

+ 2 - 1
ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml

@@ -9,7 +9,8 @@ PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 		<setting name="useGeneratedKeys"         value="true" />  <!-- 允许 JDBC 支持自动生成主键 -->
 		<setting name="defaultExecutorType"      value="REUSE" /> <!-- 配置默认的执行器 -->
 		<setting name="logImpl"                  value="SLF4J" /> <!-- 指定 MyBatis 所用日志的具体实现 -->
-		<!-- <setting name="mapUnderscoreToCamelCase" value="true"/>  驼峰式命名 -->
+		<setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 驼峰式命名 -->
+		<setting name="lazyLoadingEnabled" value="true"/> <!-- 是否启用延迟加载 -->
 	</settings>
 	
 </configuration>

+ 1 - 1
ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java

@@ -68,7 +68,7 @@ public class Constants
     public static final String REPEAT_SUBMIT_KEY = "repeat_submit:";
 
     /**
-     * 验证码有效期(分钟)
+     * 验证码有效期(2分钟)
      */
     public static final Integer CAPTCHA_EXPIRATION = 2;
 

+ 1 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -113,6 +113,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/webjars/**").anonymous()
                 .antMatchers("/*/api-docs").anonymous()
                 .antMatchers("/druid/**").anonymous()
+                .antMatchers("/monitor/shutdown").anonymous()
                 // 除上面外的所有请求全部需要鉴权认证
                 .anyRequest().authenticated()
                 .and()

+ 123 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/StuBaseInfo.java

@@ -10,6 +10,9 @@ import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
 /**
  * 学生对象 stu_base_info
  *
@@ -48,6 +51,8 @@ public class StuBaseInfo extends BaseEntity
     /** 身份证号码 */
     @Excel(name = "身份证号码")
     @ApiModelProperty(value = "身份证号码")
+    @NotNull
+    @NotEmpty
     private String idCardNumber;
 
     //@Excel(name = "学号")
@@ -109,11 +114,20 @@ public class StuBaseInfo extends BaseEntity
     @ApiModelProperty(value = "寝室id")
     private Long roomId;
 
+    @Excel(name = "寝室名")
+    @ApiModelProperty(value = "寝室名")
+    private String roomName;
+
     /** 楼宇id */
     //@Excel(name = "楼宇id")
     @ApiModelProperty(value = "楼宇id")
     private Long buildingId;
 
+    /** 楼宇id */
+    @Excel(name = "楼宇名")
+    @ApiModelProperty(value = "楼宇名")
+    private String buildingName;
+
     /** 校服分发状态 */
     //@Excel(name = "校服分发状态")
     @ApiModelProperty(value = "校服分发状态")
@@ -248,26 +262,43 @@ public class StuBaseInfo extends BaseEntity
     @ApiModelProperty(value = "第一学年下半年是否缴费0未缴 1已缴")
     private Long firstLowHalfIs;
 
+    @ApiModelProperty(value = "第一学年下半年学费")
+    private BigDecimal firstLowFees;
+
     /** 第二学年上半年是否缴费 */
     //@Excel(name = "第二学年上半年是否缴费")
     @ApiModelProperty(value = "第二学年上半年是否缴费0未缴 1已缴")
     private Long secondUpHalfIs;
 
+    @ApiModelProperty(value = "第二学年上半年学费")
+    private BigDecimal secondUpFees;
+
+
     /** 第二学年下半年是否缴费 */
     //@Excel(name = "第二学年下半年是否缴费")
     @ApiModelProperty(value = "第二学年下半年是否缴费0未缴 1已缴")
     private Long secondLowHalfIs;
 
+    @ApiModelProperty(value = "第二学年下半年学费")
+    private BigDecimal secondLowFees;
+
+
     /** 第三学年上半年是否缴费 */
     //@Excel(name = "第三学年上半年是否缴费")
     @ApiModelProperty(value = "第三学年上半年是否缴费0未缴 1已缴")
     private Long thirdUpHalfIs;
 
+    @ApiModelProperty(value = "第三学年上半年学费")
+    private BigDecimal thirdUpFees;
+
     /** 第三学年下半年是否缴费 */
     //@Excel(name = "第三学年下半年是否缴费")
     @ApiModelProperty(value = "第三学年下半年是否缴费0未缴 1已缴")
     private Long thirdLowHalfIs;
 
+    @ApiModelProperty(value = "第三学年下半年是学费")
+    private BigDecimal thirdLowFees;
+
     /** 缴费次数 */
     //@Excel(name = "缴费次数")
     @ApiModelProperty(value = "缴费次数")
@@ -277,6 +308,10 @@ public class StuBaseInfo extends BaseEntity
     private String departmentName;
     private Long collegeId;
     private String collegeName;
+    private Long userId;
+    private Integer quitApplyStatus;
+    private Integer outApplyStatus;
+    private Integer bookApplyStatus;
 
     public Long getBuildingId() {
         return buildingId;
@@ -764,6 +799,94 @@ public class StuBaseInfo extends BaseEntity
         this.officialTotal = officialTotal;
     }
 
+    public String getRoomName() {
+        return roomName;
+    }
+
+    public void setRoomName(String roomName) {
+        this.roomName = roomName;
+    }
+
+    public String getBuildingName() {
+        return buildingName;
+    }
+
+    public void setBuildingName(String buildingName) {
+        this.buildingName = buildingName;
+    }
+
+    public BigDecimal getFirstLowFees() {
+        return firstLowFees;
+    }
+
+    public void setFirstLowFees(BigDecimal firstLowFees) {
+        this.firstLowFees = firstLowFees;
+    }
+
+    public BigDecimal getSecondUpFees() {
+        return secondUpFees;
+    }
+
+    public void setSecondUpFees(BigDecimal secondUpFees) {
+        this.secondUpFees = secondUpFees;
+    }
+
+    public BigDecimal getSecondLowFees() {
+        return secondLowFees;
+    }
+
+    public void setSecondLowFees(BigDecimal secondLowFees) {
+        this.secondLowFees = secondLowFees;
+    }
+
+    public BigDecimal getThirdUpFees() {
+        return thirdUpFees;
+    }
+
+    public void setThirdUpFees(BigDecimal thirdUpFees) {
+        this.thirdUpFees = thirdUpFees;
+    }
+
+    public BigDecimal getThirdLowFees() {
+        return thirdLowFees;
+    }
+
+    public void setThirdLowFees(BigDecimal thirdLowFees) {
+        this.thirdLowFees = thirdLowFees;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public Integer getQuitApplyStatus() {
+        return quitApplyStatus;
+    }
+
+    public void setQuitApplyStatus(Integer quitApplyStatus) {
+        this.quitApplyStatus = quitApplyStatus;
+    }
+
+    public Integer getOutApplyStatus() {
+        return outApplyStatus;
+    }
+
+    public void setOutApplyStatus(Integer outApplyStatus) {
+        this.outApplyStatus = outApplyStatus;
+    }
+
+    public Integer getBookApplyStatus() {
+        return bookApplyStatus;
+    }
+
+    public void setBookApplyStatus(Integer bookApplyStatus) {
+        this.bookApplyStatus = bookApplyStatus;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 91 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/StuBookApply.java

@@ -0,0 +1,91 @@
+package com.ruoyi.system.domain;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 教材申请对象 stu_book_apply
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@ApiModel("教材申请模型")
+public class StuBookApply extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID   */
+    private Long id;
+
+    /** 学生id */
+    @Excel(name = "学生id")
+    @ApiModelProperty(value = "学生id")
+    private Long studentId;
+
+    /** 班级id */
+    @Excel(name = "班级id")
+    @ApiModelProperty(value = "班级id")
+    private Long classId;
+
+    /** 申请状态 */
+    @Excel(name = "申请状态")
+    @ApiModelProperty(value = "申请状态")
+    private Integer status;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setStudentId(Long studentId) 
+    {
+        this.studentId = studentId;
+    }
+
+    public Long getStudentId() 
+    {
+        return studentId;
+    }
+    public void setClassId(Long classId) 
+    {
+        this.classId = classId;
+    }
+
+    public Long getClassId() 
+    {
+        return classId;
+    }
+    public void setStatus(Integer status)
+    {
+        this.status = status;
+    }
+
+    public Integer getStatus()
+    {
+        return status;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("studentId", getStudentId())
+            .append("classId", getClassId())
+            .append("status", getStatus())
+            .append("remark", getRemark())
+            .append("createTime", getCreateTime())
+            .append("createBy", getCreateBy())
+            .append("updateTime", getUpdateTime())
+            .append("updateBy", getUpdateBy())
+            .toString();
+    }
+}

+ 12 - 1
ruoyi-system/src/main/java/com/ruoyi/system/domain/StuClass.java

@@ -34,9 +34,11 @@ public class StuClass extends BaseEntity
     private String className;
 
     /** $column.columnComment */
-    @Excel(name = "班级名称")
+    @Excel(name = "班级主任名称")
     private String classTeacher;
 
+    private Long classTeacherId;
+
     /** 年级 */
     @Excel(name = "年级")
     private Long grade;
@@ -85,6 +87,15 @@ public class StuClass extends BaseEntity
     {
         return classTeacher;
     }
+
+    public Long getClassTeacherId() {
+        return classTeacherId;
+    }
+
+    public void setClassTeacherId(Long classTeacherId) {
+        this.classTeacherId = classTeacherId;
+    }
+
     public void setGrade(Long grade)
     {
         this.grade = grade;

+ 67 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/StuClassBookConfig.java

@@ -0,0 +1,67 @@
+package com.ruoyi.system.domain;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+import java.util.List;
+
+/**
+ * 教材配置对象 stu_class_book_config
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@ApiModel("班级教材配置模型")
+public class StuClassBookConfig extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 班级id */
+    @ApiModelProperty(value = "班级id")
+    private Long classId;
+
+    /** 教材id */
+    @ApiModelProperty(value = "教材id数组")
+    private List<Long> textBookIdList;
+    @ApiModelProperty(value = "教材id",hidden = true)
+    private Long textBookId;
+
+    public void setClassId(Long classId) 
+    {
+        this.classId = classId;
+    }
+
+    public Long getClassId() 
+    {
+        return classId;
+    }
+
+    public List<Long> getTextBookIdList() {
+        return textBookIdList;
+    }
+
+    public void setTextBookIdList(List<Long> textBookIdList) {
+        this.textBookIdList = textBookIdList;
+    }
+
+    public Long getTextBookId() {
+        return textBookId;
+    }
+
+    public void setTextBookId(Long textBookId) {
+        this.textBookId = textBookId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("classId", getClassId())
+            .append("createTime", getCreateTime())
+            .append("createBy", getCreateBy())
+            .toString();
+    }
+}

+ 75 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/StuOutSchoolApply.java

@@ -0,0 +1,75 @@
+package com.ruoyi.system.domain;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 失学申请对象 stu_out_school_apply
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@ApiModel("失学申请模型")
+public class StuOutSchoolApply extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** 学生id */
+    @Excel(name = "学生id")
+    @ApiModelProperty(value = "学生id")
+    private Long studentId;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    @ApiModelProperty(value = "申请状态")
+    private Long status;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setStudentId(Long studentId) 
+    {
+        this.studentId = studentId;
+    }
+
+    public Long getStudentId() 
+    {
+        return studentId;
+    }
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("studentId", getStudentId())
+            .append("createTime", getCreateTime())
+            .append("createBy", getCreateBy())
+            .append("updateTime", getUpdateTime())
+            .append("status", getStatus())
+            .append("remark", getRemark())
+            .append("updateBy", getUpdateBy())
+            .toString();
+    }
+}

+ 75 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/StuQuitSchoolApply.java

@@ -0,0 +1,75 @@
+package com.ruoyi.system.domain;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 退学申请对象 stu_quit_school_apply
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@ApiModel("退学申请模型")
+public class StuQuitSchoolApply extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long id;
+
+    /** 学生id */
+    @Excel(name = "学生id")
+    @ApiModelProperty(value = "学生id")
+    private Long studentId;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    @ApiModelProperty(value = "申请状态")
+    private Long status;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setStudentId(Long studentId) 
+    {
+        this.studentId = studentId;
+    }
+
+    public Long getStudentId() 
+    {
+        return studentId;
+    }
+    public void setStatus(Long status) 
+    {
+        this.status = status;
+    }
+
+    public Long getStatus() 
+    {
+        return status;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("studentId", getStudentId())
+            .append("createTime", getCreateTime())
+            .append("createBy", getCreateBy())
+            .append("updateTime", getUpdateTime())
+            .append("status", getStatus())
+            .append("remark", getRemark())
+            .append("updateBy", getUpdateBy())
+            .toString();
+    }
+}

+ 12 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/StuRoom.java

@@ -26,6 +26,9 @@ public class StuRoom extends BaseEntity
     @Excel(name = "楼宇名")
     private String buildingName;
 
+    /** 寝室类型 */
+    private Integer roomType;
+
     /** 寝室名  */
     @Excel(name = "寝室名 ")
     private String roomName;
@@ -67,6 +70,14 @@ public class StuRoom extends BaseEntity
         return roomName;
     }
 
+    public Integer getRoomType() {
+        return roomType;
+    }
+
+    public void setRoomType(Integer roomType) {
+        this.roomType = roomType;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@@ -74,6 +85,7 @@ public class StuRoom extends BaseEntity
             .append("buiddingId", getBuiddingId())
             .append("buildingName", getBuildingName())
             .append("roomName", getRoomName())
+            .append("roomType", getRoomType())
             .append("remark", getRemark())
             .append("createTime", getCreateTime())
             .append("updateTime", getUpdateTime())

+ 120 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/StuTextBook.java

@@ -0,0 +1,120 @@
+package com.ruoyi.system.domain;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 教材对象 stu_text_book
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@ApiModel("教材信息模型")
+public class StuTextBook extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID */
+    private Integer id;
+
+    /** 名称 */
+    @Excel(name = "名称")
+    @ApiModelProperty(value = "教材名称")
+    private String name;
+
+    /** 单价 */
+    @Excel(name = "单价")
+    @ApiModelProperty(value = "单价")
+    private BigDecimal price;
+
+    /** 折扣价 */
+    @Excel(name = "折扣价")
+    @ApiModelProperty(value = "折后价")
+    private BigDecimal discountPrice;
+
+    /** 数量 */
+    @Excel(name = "数量")
+    @ApiModelProperty(value = "数量")
+    private Long amount;
+
+    /** 删除标志(0正常,1删除) */
+    @ApiModelProperty(value = "删除标志(0正常,1删除)",hidden = true)
+    private Long delFlag;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setPrice(BigDecimal price) 
+    {
+        this.price = price;
+    }
+
+    public BigDecimal getPrice() 
+    {
+        return price;
+    }
+    public void setDiscountPrice(BigDecimal discountPrice) 
+    {
+        this.discountPrice = discountPrice;
+    }
+
+    public BigDecimal getDiscountPrice() 
+    {
+        return discountPrice;
+    }
+    public void setAmount(Long amount) 
+    {
+        this.amount = amount;
+    }
+
+    public Long getAmount() 
+    {
+        return amount;
+    }
+    public void setDelFlag(Long delFlag) 
+    {
+        this.delFlag = delFlag;
+    }
+
+    public Long getDelFlag() 
+    {
+        return delFlag;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("name", getName())
+            .append("price", getPrice())
+            .append("discountPrice", getDiscountPrice())
+            .append("amount", getAmount())
+            .append("remark", getRemark())
+            .append("delFlag", getDelFlag())
+            .append("createBy", getCreateBy())
+            .append("createTime", getCreateTime())
+            .append("updateBy", getUpdateBy())
+            .append("updateTime", getUpdateTime())
+            .toString();
+    }
+}

+ 24 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/param/ApplyListParam.java

@@ -0,0 +1,24 @@
+package com.ruoyi.system.domain.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+/**
+ * @Description 审批列表请求参数模型
+ * @Author liqinglong
+ * @DateTime 2021-09-27 17:15
+ * @Version 1.0
+ */
+@Data
+@ToString
+@ApiModel("审批列表请求参数模型")
+public class ApplyListParam implements Serializable {
+    @ApiModelProperty(value = "学生姓名")
+    private String studentName;
+    @ApiModelProperty(value = "创建者",hidden = true)
+    private Long createBy;
+}

+ 24 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/param/ClassBookConfigParam.java

@@ -0,0 +1,24 @@
+package com.ruoyi.system.domain.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+/**
+ * @Description 班级教材配置参数
+ * @Author liqinglong
+ * @DateTime 2021-09-28 09:58
+ * @Version 1.0
+ */
+@Data
+@ToString
+@ApiModel("班级教材配置参数")
+public class ClassBookConfigParam implements Serializable {
+    @ApiModelProperty("班级id")
+    private Long classId;
+    @ApiModelProperty("教材id")
+    private Long textBookId;
+}

+ 37 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ApplyListVo.java

@@ -0,0 +1,37 @@
+package com.ruoyi.system.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description 申请列表模型
+ * @Author liqinglong
+ * @DateTime 2021-09-27 17:20
+ * @Version 1.0
+ */
+@Data
+@ToString
+@ApiModel("申请列表模型")
+public class ApplyListVo implements Serializable {
+    private Long id;
+    @ApiModelProperty(value = "专业")
+    private String professionName;
+    @ApiModelProperty(value = "学生姓名")
+    private String studentName;
+    @ApiModelProperty(value = "班级")
+    private String className;
+    @ApiModelProperty(value = "申请人")
+    private String nickName;
+    @ApiModelProperty(value = "状态")
+    private Integer status;
+    @ApiModelProperty(value = "申请时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+}

+ 24 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/BookConfigVo.java

@@ -0,0 +1,24 @@
+package com.ruoyi.system.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+/**
+ * @Description TODO
+ * @Author liqinglong
+ * @DateTime 2021-09-28 10:51
+ * @Version 1.0
+ */
+@Data
+@ToString
+@ApiModel("教材配置vo模型")
+public class BookConfigVo implements Serializable {
+    @ApiModelProperty(value = "教材id")
+    private Long id;
+    @ApiModelProperty(value = "教材名称")
+    private String name;
+}

+ 24 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ClassTeacherVo.java

@@ -0,0 +1,24 @@
+package com.ruoyi.system.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+/**
+ * @Description 班主任列表模型
+ * @Author liqinglong
+ * @DateTime 2021-09-27 10:16
+ * @Version 1.0
+ */
+@Data
+@ToString
+@ApiModel("班主任模型")
+public class ClassTeacherVo implements Serializable {
+    @ApiModelProperty(value = "班主任id")
+    private Long id;
+    @ApiModelProperty(value = "班主任名称")
+    private String name;
+}

+ 39 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RoomStudentVo.java

@@ -0,0 +1,39 @@
+package com.ruoyi.system.domain.vo;
+
+import java.io.Serializable;
+
+/**
+ * @Description 一个寝室的学生列表
+ * @Author liqinglong
+ * @DateTime 2021-07-13 14:24
+ * @Version 1.0
+ */
+public class RoomStudentVo implements Serializable {
+    private Long id;
+    private String studentName;
+    private String studentNumber;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getStudentName() {
+        return studentName;
+    }
+
+    public void setStudentName(String studentName) {
+        this.studentName = studentName;
+    }
+
+    public String getStudentNumber() {
+        return studentNumber;
+    }
+
+    public void setStudentNumber(String studentNumber) {
+        this.studentNumber = studentNumber;
+    }
+}

+ 8 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuBaseInfoMapper.java

@@ -2,6 +2,7 @@ package com.ruoyi.system.mapper;
 
 import com.ruoyi.system.domain.StuBaseInfo;
 import com.ruoyi.system.domain.vo.FinanceExportVo;
+import com.ruoyi.system.domain.vo.RoomStudentVo;
 import com.ruoyi.system.domain.vo.StudentGraduationStatusVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -96,4 +97,11 @@ public interface StuBaseInfoMapper
      * @return java.util.List<com.ruoyi.system.domain.vo.FinanceExportVo>
      */
     public List<FinanceExportVo> selectStuFinanceInfoList(StuBaseInfo stuBaseInfo);
+
+    /**
+     * @Description 根据寝室id查询学生列表
+     * @param roomId
+     * @return java.util.List<com.ruoyi.system.domain.vo.RoomStudentVo>
+     */
+    public List<RoomStudentVo> selectStudentByRoomId(@Param("roomId") Long roomId);
 }

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuBookApplyMapper.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.StuBookApply;
+import com.ruoyi.system.domain.param.ApplyListParam;
+import com.ruoyi.system.domain.vo.ApplyListVo;
+
+/**
+ * 教材申请Mapper接口
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+public interface StuBookApplyMapper 
+{
+    /**
+     * 查询教材申请
+     * 
+     * @param id 教材申请ID
+     * @return 教材申请
+     */
+    public StuBookApply selectStuBookApplyById(Long id);
+
+    /**
+     * 查询教材申请列表
+     * 
+     * @param param 教材申请
+     * @return 教材申请集合
+     */
+    public List<ApplyListVo> selectStuBookApplyList(ApplyListParam param);
+
+    /**
+     * 新增教材申请
+     * 
+     * @param stuBookApply 教材申请
+     * @return 结果
+     */
+    public int insertStuBookApply(StuBookApply stuBookApply);
+
+    /**
+     * 修改教材申请
+     * 
+     * @param stuBookApply 教材申请
+     * @return 结果
+     */
+    public int updateStuBookApply(StuBookApply stuBookApply);
+
+    /**
+     * 删除教材申请
+     * 
+     * @param id 教材申请ID
+     * @return 结果
+     */
+    public int deleteStuBookApplyById(Long id);
+
+    /**
+     * 批量删除教材申请
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteStuBookApplyByIds(Long[] ids);
+}

+ 71 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuClassBookConfigMapper.java

@@ -0,0 +1,71 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.StuClassBookConfig;
+import com.ruoyi.system.domain.param.ClassBookConfigParam;
+import com.ruoyi.system.domain.vo.BookConfigVo;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 教材配置Mapper接口
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+public interface StuClassBookConfigMapper 
+{
+    /**
+     * 查询教材配置
+     * 
+     * @param classId 教材配置ID
+     * @return 教材配置
+     */
+    public StuClassBookConfig selectStuClassBookConfigById(Long classId);
+
+    /**
+     * 查询教材配置列表
+     * 
+     * @param classId 教材配置
+     * @return 教材配置集合
+     */
+    public List<BookConfigVo> selectClassBookConfigListByClassId(@Param("classId") Long classId);
+
+    /**
+     * 新增教材配置
+     * 
+     * @param stuClassBookConfig 教材配置
+     * @return 结果
+     */
+    public int insertStuClassBookConfig(StuClassBookConfig stuClassBookConfig);
+
+    /**
+     * 修改教材配置
+     * 
+     * @param stuClassBookConfig 教材配置
+     * @return 结果
+     */
+    public int updateStuClassBookConfig(StuClassBookConfig stuClassBookConfig);
+
+    /**
+     * 删除教材配置
+     * 
+     * @param param 教材id和班级id
+     * @return 结果
+     */
+    public int deleteStuClassBookConfigByParam(ClassBookConfigParam param);
+
+    /**
+     * 批量删除教材配置
+     * 
+     * @param params 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteStuClassBookConfigByParams(ClassBookConfigParam[] params);
+
+    /**
+     * @Description 查询配置是否存在
+     * @param classBookConfig
+     * @return com.ruoyi.system.domain.StuClassBookConfig
+     */
+    public StuClassBookConfig selectClassBookConfigByClassIdAndBookId(StuClassBookConfig classBookConfig);
+}

+ 64 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuOutSchoolApplyMapper.java

@@ -0,0 +1,64 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+
+import com.ruoyi.system.domain.StuOutSchoolApply;
+import com.ruoyi.system.domain.param.ApplyListParam;
+import com.ruoyi.system.domain.vo.ApplyListVo;
+
+/**
+ * 失学申请Mapper接口
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+public interface StuOutSchoolApplyMapper 
+{
+    /**
+     * 查询失学申请
+     * 
+     * @param id 失学申请ID
+     * @return 失学申请
+     */
+    public StuOutSchoolApply selectStuOutSchoolApplyById(Long id);
+
+    /**
+     * 查询失学申请列表
+     * 
+     * @param param 失学申请
+     * @return 失学申请集合
+     */
+    public List<ApplyListVo> selectStuOutSchoolApplyList(ApplyListParam param);
+
+    /**
+     * 新增失学申请
+     * 
+     * @param stuOutSchoolApply 失学申请
+     * @return 结果
+     */
+    public int insertStuOutSchoolApply(StuOutSchoolApply stuOutSchoolApply);
+
+    /**
+     * 修改失学申请
+     * 
+     * @param stuOutSchoolApply 失学申请
+     * @return 结果
+     */
+    public int updateStuOutSchoolApply(StuOutSchoolApply stuOutSchoolApply);
+
+    /**
+     * 删除失学申请
+     * 
+     * @param id 失学申请ID
+     * @return 结果
+     */
+    public int deleteStuOutSchoolApplyById(Long id);
+
+    /**
+     * 批量删除失学申请
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteStuOutSchoolApplyByIds(Long[] ids);
+}

+ 64 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuQuitSchoolApplyMapper.java

@@ -0,0 +1,64 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+
+import com.ruoyi.system.domain.StuQuitSchoolApply;
+import com.ruoyi.system.domain.param.ApplyListParam;
+import com.ruoyi.system.domain.vo.ApplyListVo;
+
+/**
+ * 退学申请Mapper接口
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+public interface StuQuitSchoolApplyMapper 
+{
+    /**
+     * 查询退学申请
+     * 
+     * @param id 退学申请ID
+     * @return 退学申请
+     */
+    public StuQuitSchoolApply selectStuQuitSchoolApplyById(Long id);
+
+    /**
+     * 查询退学申请列表
+     * 
+     * @param param 退学申请
+     * @return 退学申请集合
+     */
+    public List<ApplyListVo> selectStuQuitSchoolApplyList(ApplyListParam param);
+
+    /**
+     * 新增退学申请
+     * 
+     * @param stuQuitSchoolApply 退学申请
+     * @return 结果
+     */
+    public int insertStuQuitSchoolApply(StuQuitSchoolApply stuQuitSchoolApply);
+
+    /**
+     * 修改退学申请
+     * 
+     * @param stuQuitSchoolApply 退学申请
+     * @return 结果
+     */
+    public int updateStuQuitSchoolApply(StuQuitSchoolApply stuQuitSchoolApply);
+
+    /**
+     * 删除退学申请
+     * 
+     * @param id 退学申请ID
+     * @return 结果
+     */
+    public int deleteStuQuitSchoolApplyById(Long id);
+
+    /**
+     * 批量删除退学申请
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteStuQuitSchoolApplyByIds(Long[] ids);
+}

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuRoomMapper.java

@@ -72,5 +72,5 @@ public interface StuRoomMapper
      * @param buildingId
      * @return java.util.List<com.ruoyi.system.domain.StuRoom>
      */
-    public List<StuRoom> queryRoomByBuildingId(@Param("buildingId") Long buildingId);
+    public List<StuRoom> queryRoomByBuildingId(@Param("buildingId") Long buildingId,@Param("roomType") Integer roomType);
 }

+ 77 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/StuTextBookMapper.java

@@ -0,0 +1,77 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.StuTextBook;
+import com.ruoyi.system.domain.vo.BookConfigVo;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 教材Mapper接口
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+public interface StuTextBookMapper 
+{
+    /**
+     * 查询教材
+     * 
+     * @param id 教材ID
+     * @return 教材
+     */
+    public StuTextBook selectStuTextBookById(String id);
+
+    /**
+     * 查询教材列表
+     * 
+     * @param stuTextBook 教材
+     * @return 教材集合
+     */
+    public List<StuTextBook> selectStuTextBookList(StuTextBook stuTextBook);
+
+    /**
+     * 新增教材
+     * 
+     * @param stuTextBook 教材
+     * @return 结果
+     */
+    public int insertStuTextBook(StuTextBook stuTextBook);
+
+    /**
+     * 修改教材
+     * 
+     * @param stuTextBook 教材
+     * @return 结果
+     */
+    public int updateStuTextBook(StuTextBook stuTextBook);
+
+    /**
+     * 删除教材
+     * 
+     * @param id 教材ID
+     * @return 结果
+     */
+    public int deleteStuTextBookById(String id);
+
+    /**
+     * 批量删除教材
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteStuTextBookByIds(String[] ids);
+
+    /**
+     * @Description 教材列表
+     * @return java.util.List<com.ruoyi.system.domain.vo.BookConfigVo>
+     */
+    List<BookConfigVo> selectClassBookList();
+
+    /**
+     * @Description 根据班级id查询教材
+     * @param classId 班级id
+     * @return java.util.List<com.ruoyi.system.domain.StuTextBook>
+     */
+    public List<StuTextBook> selectTextBookByClassId(@Param("classId") Long classId);
+
+}

+ 8 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java

@@ -1,6 +1,8 @@
 package com.ruoyi.system.mapper;
 
 import java.util.List;
+
+import com.ruoyi.system.domain.vo.ClassTeacherVo;
 import org.apache.ibatis.annotations.Param;
 import com.ruoyi.common.core.domain.entity.SysUser;
 
@@ -108,4 +110,10 @@ public interface SysUserMapper
      * @return 结果
      */
     public SysUser checkEmailUnique(String email);
+
+    /**
+     * @Description 根据班主任角色查询班主任列表
+     * @return java.util.List<com.ruoyi.system.domain.vo.ClassTeacherVo>
+     */
+    List<ClassTeacherVo> selectUserByClassTeacher();
 }

+ 9 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IStuBaseInfoService.java

@@ -3,6 +3,8 @@ package com.ruoyi.system.service;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.system.domain.StuBaseInfo;
 import com.ruoyi.system.domain.vo.FinanceExportVo;
+import com.ruoyi.system.domain.vo.RoomStudentVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -85,5 +87,12 @@ public interface IStuBaseInfoService
      */
     public List<FinanceExportVo> selectStuFinanceInfoList(StuBaseInfo stuBaseInfo);
 
+    /**
+     * @Description 根据寝室id查询学生列表
+     * @param roomId
+     * @return java.util.List<com.ruoyi.system.domain.vo.RoomStudentVo>
+     */
+    public List<RoomStudentVo> selectStudentByRoomId(Long roomId);
+
 
 }

+ 63 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IStuBookApplyService.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.StuBookApply;
+import com.ruoyi.system.domain.param.ApplyListParam;
+import com.ruoyi.system.domain.vo.ApplyListVo;
+
+/**
+ * 教材申请Service接口
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+public interface IStuBookApplyService 
+{
+    /**
+     * 查询教材申请
+     * 
+     * @param id 教材申请ID
+     * @return 教材申请
+     */
+    public StuBookApply selectStuBookApplyById(Long id);
+
+    /**
+     * 查询教材申请列表
+     * 
+     * @param param 教材申请
+     * @return 教材申请集合
+     */
+    public List<ApplyListVo> selectStuBookApplyList(ApplyListParam param);
+
+    /**
+     * 新增教材申请
+     * 
+     * @param stuBookApply 教材申请
+     * @return 结果
+     */
+    public int insertStuBookApply(StuBookApply stuBookApply);
+
+    /**
+     * 修改教材申请
+     * 
+     * @param stuBookApply 教材申请
+     * @return 结果
+     */
+    public int updateStuBookApply(StuBookApply stuBookApply);
+
+    /**
+     * 批量删除教材申请
+     * 
+     * @param ids 需要删除的教材申请ID
+     * @return 结果
+     */
+    public int deleteStuBookApplyByIds(Long[] ids);
+
+    /**
+     * 删除教材申请信息
+     * 
+     * @param id 教材申请ID
+     * @return 结果
+     */
+    public int deleteStuBookApplyById(Long id);
+}

+ 64 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IStuClassBookConfigService.java

@@ -0,0 +1,64 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.StuClassBookConfig;
+import com.ruoyi.system.domain.param.ClassBookConfigParam;
+import com.ruoyi.system.domain.vo.BookConfigVo;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 教材配置Service接口
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+public interface IStuClassBookConfigService 
+{
+    /**
+     * 查询教材配置
+     * 
+     * @param classId 教材配置ID
+     * @return 教材配置
+     */
+    public StuClassBookConfig selectStuClassBookConfigById(Long classId);
+
+    /**
+     * 查询教材配置列表
+     * 
+     * @param classId 教材配置
+     * @return 教材配置集合
+     */
+    public List<BookConfigVo> selectClassBookConfigListByClassId(Long classId);
+
+    /**
+     * 新增教材配置
+     * 
+     * @param stuClassBookConfig 教材配置
+     * @return 结果
+     */
+    public int insertStuClassBookConfig(StuClassBookConfig stuClassBookConfig);
+
+    /**
+     * 修改教材配置
+     * 
+     * @param stuClassBookConfig 教材配置
+     * @return 结果
+     */
+    public int updateStuClassBookConfig(StuClassBookConfig stuClassBookConfig);
+
+    /**
+     * 批量删除教材配置
+     * 
+     * @param params 需要删除的教材配置ID
+     * @return 结果
+     */
+    public int deleteStuClassBookConfigByParams(ClassBookConfigParam[] params);
+
+    /**
+     * 删除教材配置信息
+     * 
+     * @param param 教材配置ID
+     * @return 结果
+     */
+    public int deleteStuClassBookConfigByParam(ClassBookConfigParam param);
+}

+ 64 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IStuOutSchoolApplyService.java

@@ -0,0 +1,64 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+
+import com.ruoyi.system.domain.StuOutSchoolApply;
+import com.ruoyi.system.domain.param.ApplyListParam;
+import com.ruoyi.system.domain.vo.ApplyListVo;
+
+/**
+ * 失学申请Service接口
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+public interface IStuOutSchoolApplyService 
+{
+    /**
+     * 查询失学申请
+     * 
+     * @param id 失学申请ID
+     * @return 失学申请
+     */
+    public StuOutSchoolApply selectStuOutSchoolApplyById(Long id);
+
+    /**
+     * 查询失学申请列表
+     * 
+     * @param param 失学申请
+     * @return 失学申请集合
+     */
+    public List<ApplyListVo> selectStuOutSchoolApplyList(ApplyListParam param);
+
+    /**
+     * 新增失学申请
+     * 
+     * @param stuOutSchoolApply 失学申请
+     * @return 结果
+     */
+    public int insertStuOutSchoolApply(StuOutSchoolApply stuOutSchoolApply);
+
+    /**
+     * 修改失学申请
+     * 
+     * @param stuOutSchoolApply 失学申请
+     * @return 结果
+     */
+    public int updateStuOutSchoolApply(StuOutSchoolApply stuOutSchoolApply);
+
+    /**
+     * 批量删除失学申请
+     * 
+     * @param ids 需要删除的失学申请ID
+     * @return 结果
+     */
+    public int deleteStuOutSchoolApplyByIds(Long[] ids);
+
+    /**
+     * 删除失学申请信息
+     * 
+     * @param id 失学申请ID
+     * @return 结果
+     */
+    public int deleteStuOutSchoolApplyById(Long id);
+}

+ 64 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IStuQuitSchoolApplyService.java

@@ -0,0 +1,64 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+
+import com.ruoyi.system.domain.StuQuitSchoolApply;
+import com.ruoyi.system.domain.param.ApplyListParam;
+import com.ruoyi.system.domain.vo.ApplyListVo;
+
+/**
+ * 退学申请Service接口
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+public interface IStuQuitSchoolApplyService 
+{
+    /**
+     * 查询退学申请
+     * 
+     * @param id 退学申请ID
+     * @return 退学申请
+     */
+    public StuQuitSchoolApply selectStuQuitSchoolApplyById(Long id);
+
+    /**
+     * 查询退学申请列表
+     * 
+     * @param param 退学申请
+     * @return 退学申请集合
+     */
+    public List<ApplyListVo> selectStuQuitSchoolApplyList(ApplyListParam param);
+
+    /**
+     * 新增退学申请
+     * 
+     * @param stuQuitSchoolApply 退学申请
+     * @return 结果
+     */
+    public int insertStuQuitSchoolApply(StuQuitSchoolApply stuQuitSchoolApply);
+
+    /**
+     * 修改退学申请
+     * 
+     * @param stuQuitSchoolApply 退学申请
+     * @return 结果
+     */
+    public int updateStuQuitSchoolApply(StuQuitSchoolApply stuQuitSchoolApply);
+
+    /**
+     * 批量删除退学申请
+     * 
+     * @param ids 需要删除的退学申请ID
+     * @return 结果
+     */
+    public int deleteStuQuitSchoolApplyByIds(Long[] ids);
+
+    /**
+     * 删除退学申请信息
+     * 
+     * @param id 退学申请ID
+     * @return 结果
+     */
+    public int deleteStuQuitSchoolApplyById(Long id);
+}

+ 1 - 1
ruoyi-system/src/main/java/com/ruoyi/system/service/IStuRoomService.java

@@ -72,5 +72,5 @@ public interface IStuRoomService
      * @param buildingId
      * @return java.util.List<com.ruoyi.system.domain.StuRoom>
      */
-    public List<StuRoom> queryRoomByBuildingId(Long buildingId);
+    public List<StuRoom> queryRoomByBuildingId(Long buildingId,Integer roomType);
 }

+ 76 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IStuTextBookService.java

@@ -0,0 +1,76 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.StuTextBook;
+import com.ruoyi.system.domain.vo.BookConfigVo;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 教材Service接口
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+public interface IStuTextBookService 
+{
+    /**
+     * 查询教材
+     * 
+     * @param id 教材ID
+     * @return 教材
+     */
+    public StuTextBook selectStuTextBookById(String id);
+
+    /**
+     * 查询教材列表
+     * 
+     * @param stuTextBook 教材
+     * @return 教材集合
+     */
+    public List<StuTextBook> selectStuTextBookList(StuTextBook stuTextBook);
+
+    /**
+     * 新增教材
+     * 
+     * @param stuTextBook 教材
+     * @return 结果
+     */
+    public int insertStuTextBook(StuTextBook stuTextBook);
+
+    /**
+     * 修改教材
+     * 
+     * @param stuTextBook 教材
+     * @return 结果
+     */
+    public int updateStuTextBook(StuTextBook stuTextBook);
+
+    /**
+     * 批量删除教材
+     * 
+     * @param ids 需要删除的教材ID
+     * @return 结果
+     */
+    public int deleteStuTextBookByIds(String[] ids);
+
+    /**
+     * 删除教材信息
+     * 
+     * @param id 教材ID
+     * @return 结果
+     */
+    public int deleteStuTextBookById(String id);
+
+    /**
+     * @Description 教材列表
+     * @return java.util.List<com.ruoyi.system.domain.vo.BookConfigVo>
+     */
+    List<BookConfigVo> selectClassBookList();
+
+    /**
+     * @Description 根据班级id查询教材
+     * @param classId 班级id
+     * @return java.util.List<com.ruoyi.system.domain.StuTextBook>
+     */
+    public List<StuTextBook> selectTextBookByClassId(Long classId);
+}

+ 8 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -2,6 +2,7 @@ package com.ruoyi.system.service;
 
 import java.util.List;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.system.domain.vo.ClassTeacherVo;
 
 /**
  * 用户 业务层
@@ -164,4 +165,11 @@ public interface ISysUserService
      * @return 结果
      */
     public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
+
+    /**
+     * @Description 根据班主任角色查询班主任列表
+     * @return java.util.List<com.ruoyi.system.domain.vo.ClassTeacherVo>
+     */
+    List<ClassTeacherVo> selectUserByClassTeacher();
+
 }

+ 22 - 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuBaseInfoServiceImpl.java

@@ -10,6 +10,7 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.domain.StuBaseInfo;
 import com.ruoyi.system.domain.StuProfession;
 import com.ruoyi.system.domain.vo.FinanceExportVo;
+import com.ruoyi.system.domain.vo.RoomStudentVo;
 import com.ruoyi.system.domain.vo.StudentGraduationStatusVo;
 import com.ruoyi.system.mapper.StuBaseInfoMapper;
 import com.ruoyi.system.mapper.StuProfessionMapper;
@@ -71,7 +72,16 @@ public class StuBaseInfoServiceImpl implements IStuBaseInfoService
     public int insertStuBaseInfo(StuBaseInfo stuBaseInfo)
     {
         stuBaseInfo.setCreateTime(DateUtils.getNowDate());
-        return stuBaseInfoMapper.insertStuBaseInfo(stuBaseInfo);
+        stuBaseInfo.setPaymentDate(DateUtils.getNowDate());
+        String idCardNumber = stuBaseInfo.getIdCardNumber();
+        StuBaseInfo t = stuBaseInfoMapper.selectStudentByIDNumber(idCardNumber);
+        if(ObjectUtils.isEmpty(t)){
+            stuBaseInfoMapper.insertStuBaseInfo(stuBaseInfo);
+        }else{
+            throw new CustomException("身份证号为"+idCardNumber+"的学生已存在");
+        }
+
+        return 1;
     }
 
     /**
@@ -157,7 +167,7 @@ public class StuBaseInfoServiceImpl implements IStuBaseInfoService
             try {
                 // 验证是否存在这个用户
                 StuBaseInfo t = stuBaseInfoMapper.selectStudentByIDNumber(idCardNumber);
-                if (StringUtils.isNull(t)) {
+                if (ObjectUtils.isEmpty(t)) {
                     String professionName = student.getProfessionName();
                     StuProfession profession = stuProfessionMapper.selectProfessionByProfessionName(professionName);
                     if(null!=profession){
@@ -222,4 +232,14 @@ public class StuBaseInfoServiceImpl implements IStuBaseInfoService
     public List<FinanceExportVo> selectStuFinanceInfoList(StuBaseInfo stuBaseInfo) {
         return stuBaseInfoMapper.selectStuFinanceInfoList(stuBaseInfo);
     }
+
+    /**
+     * @param roomId
+     * @return java.util.List<com.ruoyi.system.domain.vo.RoomStudentVo>
+     * @Description 根据寝室id查询学生列表
+     */
+    @Override
+    public List<RoomStudentVo> selectStudentByRoomId(Long roomId) {
+        return stuBaseInfoMapper.selectStudentByRoomId(roomId);
+    }
 }

+ 137 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuBookApplyServiceImpl.java

@@ -0,0 +1,137 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.exception.CustomException;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.StuBaseInfo;
+import com.ruoyi.system.domain.StuTextBook;
+import com.ruoyi.system.domain.param.ApplyListParam;
+import com.ruoyi.system.domain.vo.ApplyListVo;
+import com.ruoyi.system.mapper.StuBaseInfoMapper;
+import com.ruoyi.system.mapper.StuTextBookMapper;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.StuBookApplyMapper;
+import com.ruoyi.system.domain.StuBookApply;
+import com.ruoyi.system.service.IStuBookApplyService;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 教材申请Service业务层处理
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@Service
+public class StuBookApplyServiceImpl implements IStuBookApplyService 
+{
+    @Autowired
+    private StuBookApplyMapper stuBookApplyMapper;
+    @Autowired
+    private StuTextBookMapper stuTextBookMapper;
+    @Autowired
+    private StuBaseInfoMapper stuBaseInfoMapper;
+
+    /**
+     * 查询教材申请
+     * 
+     * @param id 教材申请ID
+     * @return 教材申请
+     */
+    @Override
+    public StuBookApply selectStuBookApplyById(Long id)
+    {
+        return stuBookApplyMapper.selectStuBookApplyById(id);
+    }
+
+    /**
+     * 查询教材申请列表
+     * 
+     * @param param 教材申请
+     * @return 教材申请
+     */
+    @Override
+    public List<ApplyListVo> selectStuBookApplyList(ApplyListParam param)
+    {
+        return stuBookApplyMapper.selectStuBookApplyList(param);
+    }
+
+    /**
+     * 新增教材申请
+     * 
+     * @param stuBookApply 教材申请
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int insertStuBookApply(StuBookApply stuBookApply)
+    {
+        stuBookApply.setCreateTime(DateUtils.getNowDate());
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuBookApply.setCreateBy(String.valueOf(userId));
+
+        StuBaseInfo student = new StuBaseInfo();
+        student.setUserId(stuBookApply.getStudentId());
+        student.setBookApplyStatus(1);
+        stuBaseInfoMapper.updateStuBaseInfo(student);
+
+        return stuBookApplyMapper.insertStuBookApply(stuBookApply);
+    }
+
+    /**
+     * 修改教材申请
+     * 
+     * @param stuBookApply 教材申请
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int updateStuBookApply(StuBookApply stuBookApply)
+    {
+        stuBookApply.setUpdateTime(DateUtils.getNowDate());
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuBookApply.setUpdateBy(String.valueOf(userId));
+        Long classId = stuBookApply.getClassId();
+
+        List<StuTextBook> list =   stuTextBookMapper.selectTextBookByClassId(classId);
+        for (StuTextBook book:list) {
+            Long amount = book.getAmount();
+            if (amount<=0){
+                throw new CustomException(book.getName()+" 书本的数量不足请核实");
+            }else{
+                book.setAmount(amount-1);
+            }
+
+            stuTextBookMapper.updateStuTextBook(book);
+        }
+
+        return stuBookApplyMapper.updateStuBookApply(stuBookApply);
+    }
+
+    /**
+     * 批量删除教材申请
+     * 
+     * @param ids 需要删除的教材申请ID
+     * @return 结果
+     */
+    @Override
+    public int deleteStuBookApplyByIds(Long[] ids)
+    {
+        return stuBookApplyMapper.deleteStuBookApplyByIds(ids);
+    }
+
+    /**
+     * 删除教材申请信息
+     * 
+     * @param id 教材申请ID
+     * @return 结果
+     */
+    @Override
+    public int deleteStuBookApplyById(Long id)
+    {
+        return stuBookApplyMapper.deleteStuBookApplyById(id);
+    }
+}

+ 122 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuClassBookConfigServiceImpl.java

@@ -0,0 +1,122 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.param.ClassBookConfigParam;
+import com.ruoyi.system.domain.vo.BookConfigVo;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.StuClassBookConfigMapper;
+import com.ruoyi.system.domain.StuClassBookConfig;
+import com.ruoyi.system.service.IStuClassBookConfigService;
+
+/**
+ * 教材配置Service业务层处理
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@Service
+public class StuClassBookConfigServiceImpl implements IStuClassBookConfigService 
+{
+    @Autowired
+    private StuClassBookConfigMapper stuClassBookConfigMapper;
+
+    /**
+     * 查询教材配置
+     * 
+     * @param classId 教材配置ID
+     * @return 教材配置
+     */
+    @Override
+    public StuClassBookConfig selectStuClassBookConfigById(Long classId)
+    {
+        return stuClassBookConfigMapper.selectStuClassBookConfigById(classId);
+    }
+
+    /**
+     * 查询教材配置列表
+     * 
+     * @param classId 教材配置
+     * @return 教材配置
+     */
+    @Override
+    public List<BookConfigVo> selectClassBookConfigListByClassId(Long classId)
+    {
+        return stuClassBookConfigMapper.selectClassBookConfigListByClassId(classId);
+    }
+
+    /**
+     * 新增教材配置
+     * 
+     * @param stuClassBookConfig 教材配置
+     * @return 结果
+     */
+    @Override
+    public int insertStuClassBookConfig(StuClassBookConfig stuClassBookConfig)
+    {
+        stuClassBookConfig.setCreateTime(DateUtils.getNowDate());
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuClassBookConfig.setCreateBy(String.valueOf(userId));
+
+        List<Long> textBookIdList = stuClassBookConfig.getTextBookIdList();
+        for (Long textBookId:textBookIdList) {
+            stuClassBookConfig.setTextBookId(textBookId);
+            StuClassBookConfig config =  stuClassBookConfigMapper.selectClassBookConfigByClassIdAndBookId(stuClassBookConfig);
+            if(ObjectUtils.isEmpty(config)) {
+                stuClassBookConfigMapper.insertStuClassBookConfig(stuClassBookConfig);
+            }
+        }
+        return textBookIdList.size();
+    }
+
+    /**
+     * 修改教材配置
+     * 
+     * @param stuClassBookConfig 教材配置
+     * @return 结果
+     */
+    @Override
+    public int updateStuClassBookConfig(StuClassBookConfig stuClassBookConfig)
+    {
+        stuClassBookConfig.setCreateTime(DateUtils.getNowDate());
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuClassBookConfig.setCreateBy(String.valueOf(userId));
+
+        List<Long> textBookIdList = stuClassBookConfig.getTextBookIdList();
+        for (Long textBookId:textBookIdList) {
+            stuClassBookConfig.setTextBookId(textBookId);
+            StuClassBookConfig config =  stuClassBookConfigMapper.selectClassBookConfigByClassIdAndBookId(stuClassBookConfig);
+            if(ObjectUtils.isEmpty(config)) {
+                stuClassBookConfigMapper.insertStuClassBookConfig(stuClassBookConfig);
+            }
+        }
+        return textBookIdList.size();
+    }
+
+    /**
+     * 批量删除教材配置
+     * 
+     * @param params 教材配置对象参数数组
+     * @return 结果
+     */
+    @Override
+    public int deleteStuClassBookConfigByParams(ClassBookConfigParam[] params)
+    {
+        return stuClassBookConfigMapper.deleteStuClassBookConfigByParams(params);
+    }
+
+    /**
+     * 删除教材配置信息
+     * 
+     * @param param 教材配置对象参数
+     * @return 结果
+     */
+    @Override
+    public int deleteStuClassBookConfigByParam(ClassBookConfigParam param)
+    {
+        return stuClassBookConfigMapper.deleteStuClassBookConfigByParam(param);
+    }
+}

+ 122 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuOutSchoolApplyServiceImpl.java

@@ -0,0 +1,122 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.StuBaseInfo;
+import com.ruoyi.system.domain.param.ApplyListParam;
+import com.ruoyi.system.domain.vo.ApplyListVo;
+import com.ruoyi.system.domain.vo.StudentGraduationStatusVo;
+import com.ruoyi.system.mapper.StuBaseInfoMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.StuOutSchoolApplyMapper;
+import com.ruoyi.system.domain.StuOutSchoolApply;
+import com.ruoyi.system.service.IStuOutSchoolApplyService;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 失学申请Service业务层处理
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@Service
+public class StuOutSchoolApplyServiceImpl implements IStuOutSchoolApplyService 
+{
+    @Autowired
+    private StuOutSchoolApplyMapper stuOutSchoolApplyMapper;
+    @Autowired
+    private StuBaseInfoMapper stuBaseInfoMapper;
+
+    /**
+     * 查询失学申请
+     * 
+     * @param id 失学申请ID
+     * @return 失学申请
+     */
+    @Override
+    public StuOutSchoolApply selectStuOutSchoolApplyById(Long id)
+    {
+        return stuOutSchoolApplyMapper.selectStuOutSchoolApplyById(id);
+    }
+
+    /**
+     * 查询失学申请列表
+     * 
+     * @param param 失学申请
+     * @return 失学申请
+     */
+    @Override
+    public List<ApplyListVo> selectStuOutSchoolApplyList(ApplyListParam param)
+    {
+        return stuOutSchoolApplyMapper.selectStuOutSchoolApplyList(param);
+    }
+
+    /**
+     * 新增失学申请
+     * 
+     * @param stuOutSchoolApply 失学申请
+     * @return 结果
+     */
+    @Override
+    public int insertStuOutSchoolApply(StuOutSchoolApply stuOutSchoolApply)
+    {
+        stuOutSchoolApply.setCreateTime(DateUtils.getNowDate());
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuOutSchoolApply.setCreateBy(String.valueOf(userId));
+
+        StuBaseInfo student = new StuBaseInfo();
+        student.setUserId(stuOutSchoolApply.getStudentId());
+        student.setOutApplyStatus(1);
+        stuBaseInfoMapper.updateStuBaseInfo(student);
+
+        return stuOutSchoolApplyMapper.insertStuOutSchoolApply(stuOutSchoolApply);
+    }
+
+    /**
+     * 修改失学申请
+     * 
+     * @param stuOutSchoolApply 失学申请
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int updateStuOutSchoolApply(StuOutSchoolApply stuOutSchoolApply)
+    {
+        stuOutSchoolApply.setUpdateTime(DateUtils.getNowDate());
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuOutSchoolApply.setUpdateBy(String.valueOf(userId));
+
+        StudentGraduationStatusVo student = new StudentGraduationStatusVo();
+        student.setId(stuOutSchoolApply.getStudentId());
+        student.setStudentStatus(12L);
+        stuBaseInfoMapper.updateStudentStatus(student);
+
+        return stuOutSchoolApplyMapper.updateStuOutSchoolApply(stuOutSchoolApply);
+    }
+
+    /**
+     * 批量删除失学申请
+     * 
+     * @param ids 需要删除的失学申请ID
+     * @return 结果
+     */
+    @Override
+    public int deleteStuOutSchoolApplyByIds(Long[] ids)
+    {
+        return stuOutSchoolApplyMapper.deleteStuOutSchoolApplyByIds(ids);
+    }
+
+    /**
+     * 删除失学申请信息
+     * 
+     * @param id 失学申请ID
+     * @return 结果
+     */
+    @Override
+    public int deleteStuOutSchoolApplyById(Long id)
+    {
+        return stuOutSchoolApplyMapper.deleteStuOutSchoolApplyById(id);
+    }
+}

+ 122 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuQuitSchoolApplyServiceImpl.java

@@ -0,0 +1,122 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.StuBaseInfo;
+import com.ruoyi.system.domain.param.ApplyListParam;
+import com.ruoyi.system.domain.vo.ApplyListVo;
+import com.ruoyi.system.domain.vo.StudentGraduationStatusVo;
+import com.ruoyi.system.mapper.StuBaseInfoMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.StuQuitSchoolApplyMapper;
+import com.ruoyi.system.domain.StuQuitSchoolApply;
+import com.ruoyi.system.service.IStuQuitSchoolApplyService;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 退学申请Service业务层处理
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@Service
+public class StuQuitSchoolApplyServiceImpl implements IStuQuitSchoolApplyService 
+{
+    @Autowired
+    private StuQuitSchoolApplyMapper stuQuitSchoolApplyMapper;
+    @Autowired
+    private StuBaseInfoMapper stuBaseInfoMapper;
+
+    /**
+     * 查询退学申请
+     * 
+     * @param id 退学申请ID
+     * @return 退学申请
+     */
+    @Override
+    public StuQuitSchoolApply selectStuQuitSchoolApplyById(Long id)
+    {
+        return stuQuitSchoolApplyMapper.selectStuQuitSchoolApplyById(id);
+    }
+
+    /**
+     * 查询退学申请列表
+     * 
+     * @param param 退学申请
+     * @return 退学申请
+     */
+    @Override
+    public List<ApplyListVo> selectStuQuitSchoolApplyList(ApplyListParam param)
+    {
+        return stuQuitSchoolApplyMapper.selectStuQuitSchoolApplyList(param);
+    }
+
+    /**
+     * 新增退学申请
+     * 
+     * @param stuQuitSchoolApply 退学申请
+     * @return 结果
+     */
+    @Override
+    public int insertStuQuitSchoolApply(StuQuitSchoolApply stuQuitSchoolApply)
+    {
+        stuQuitSchoolApply.setCreateTime(DateUtils.getNowDate());
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuQuitSchoolApply.setCreateBy(String.valueOf(userId));
+
+        StuBaseInfo student = new StuBaseInfo();
+        student.setUserId(stuQuitSchoolApply.getStudentId());
+        student.setQuitApplyStatus(1);
+        stuBaseInfoMapper.updateStuBaseInfo(student);
+
+        return stuQuitSchoolApplyMapper.insertStuQuitSchoolApply(stuQuitSchoolApply);
+    }
+
+    /**
+     * 修改退学申请
+     * 
+     * @param stuQuitSchoolApply 退学申请
+     * @return 结果
+     */
+    @Override
+    @Transactional
+    public int updateStuQuitSchoolApply(StuQuitSchoolApply stuQuitSchoolApply)
+    {
+        stuQuitSchoolApply.setUpdateTime(DateUtils.getNowDate());
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuQuitSchoolApply.setUpdateBy(String.valueOf(userId));
+
+        StudentGraduationStatusVo student = new StudentGraduationStatusVo();
+        student.setId(stuQuitSchoolApply.getStudentId());
+        student.setStudentStatus(11L);
+        stuBaseInfoMapper.updateStudentStatus(student);
+
+        return stuQuitSchoolApplyMapper.updateStuQuitSchoolApply(stuQuitSchoolApply);
+    }
+
+    /**
+     * 批量删除退学申请
+     * 
+     * @param ids 需要删除的退学申请ID
+     * @return 结果
+     */
+    @Override
+    public int deleteStuQuitSchoolApplyByIds(Long[] ids)
+    {
+        return stuQuitSchoolApplyMapper.deleteStuQuitSchoolApplyByIds(ids);
+    }
+
+    /**
+     * 删除退学申请信息
+     * 
+     * @param id 退学申请ID
+     * @return 结果
+     */
+    @Override
+    public int deleteStuQuitSchoolApplyById(Long id)
+    {
+        return stuQuitSchoolApplyMapper.deleteStuQuitSchoolApplyById(id);
+    }
+}

+ 2 - 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuRoomServiceImpl.java

@@ -110,7 +110,7 @@ public class StuRoomServiceImpl implements IStuRoomService
      * @Description 根据楼宇id查询寝室列表
      */
     @Override
-    public List<StuRoom> queryRoomByBuildingId(Long buildingId) {
-        return stuRoomMapper.queryRoomByBuildingId(buildingId);
+    public List<StuRoom> queryRoomByBuildingId(Long buildingId,Integer roomType) {
+        return stuRoomMapper.queryRoomByBuildingId(buildingId,roomType);
     }
 }

+ 124 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/StuTextBookServiceImpl.java

@@ -0,0 +1,124 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
+import com.ruoyi.common.utils.uuid.UUID;
+import com.ruoyi.system.domain.vo.BookConfigVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.StuTextBookMapper;
+import com.ruoyi.system.domain.StuTextBook;
+import com.ruoyi.system.service.IStuTextBookService;
+
+/**
+ * 教材Service业务层处理
+ * 
+ * @author liql
+ * @date 2021-09-27
+ */
+@Service
+public class StuTextBookServiceImpl implements IStuTextBookService 
+{
+    @Autowired
+    private StuTextBookMapper stuTextBookMapper;
+
+    /**
+     * 查询教材
+     * 
+     * @param id 教材ID
+     * @return 教材
+     */
+    @Override
+    public StuTextBook selectStuTextBookById(String id)
+    {
+        return stuTextBookMapper.selectStuTextBookById(id);
+    }
+
+    /**
+     * 查询教材列表
+     * 
+     * @param stuTextBook 教材
+     * @return 教材
+     */
+    @Override
+    public List<StuTextBook> selectStuTextBookList(StuTextBook stuTextBook)
+    {
+        return stuTextBookMapper.selectStuTextBookList(stuTextBook);
+    }
+
+    /**
+     * 新增教材
+     * 
+     * @param stuTextBook 教材
+     * @return 结果
+     */
+    @Override
+    public int insertStuTextBook(StuTextBook stuTextBook)
+    {
+        stuTextBook.setCreateTime(DateUtils.getNowDate());
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuTextBook.setCreateBy(String.valueOf(userId));
+        stuTextBook.setDelFlag(0L);
+        return stuTextBookMapper.insertStuTextBook(stuTextBook);
+    }
+
+    /**
+     * 修改教材
+     * 
+     * @param stuTextBook 教材
+     * @return 结果
+     */
+    @Override
+    public int updateStuTextBook(StuTextBook stuTextBook)
+    {
+        stuTextBook.setUpdateTime(DateUtils.getNowDate());
+        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
+        stuTextBook.setUpdateBy(String.valueOf(userId));
+        return stuTextBookMapper.updateStuTextBook(stuTextBook);
+    }
+
+    /**
+     * 批量删除教材
+     * 
+     * @param ids 需要删除的教材ID
+     * @return 结果
+     */
+    @Override
+    public int deleteStuTextBookByIds(String[] ids)
+    {
+        return stuTextBookMapper.deleteStuTextBookByIds(ids);
+    }
+
+    /**
+     * 删除教材信息
+     * 
+     * @param id 教材ID
+     * @return 结果
+     */
+    @Override
+    public int deleteStuTextBookById(String id)
+    {
+        return stuTextBookMapper.deleteStuTextBookById(id);
+    }
+
+    /**
+     * @return java.util.List<com.ruoyi.system.domain.vo.BookConfigVo>
+     * @Description 教材列表
+     */
+    @Override
+    public List<BookConfigVo> selectClassBookList() {
+        return stuTextBookMapper.selectClassBookList();
+    }
+
+    /**
+     * @param classId 班级id
+     * @return java.util.List<com.ruoyi.system.domain.StuTextBook>
+     * @Description 根据班级id查询教材
+     */
+    @Override
+    public List<StuTextBook> selectTextBookByClassId(Long classId) {
+        return stuTextBookMapper.selectTextBookByClassId(classId);
+    }
+}

+ 11 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -2,6 +2,8 @@ package com.ruoyi.system.service.impl;
 
 import java.util.ArrayList;
 import java.util.List;
+
+import com.ruoyi.system.domain.vo.ClassTeacherVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -460,4 +462,13 @@ public class SysUserServiceImpl implements ISysUserService
         }
         return successMsg.toString();
     }
+
+    /**
+     * @return java.util.List<com.ruoyi.system.domain.vo.ClassTeacherVo>
+     * @Description 根据班主任角色查询班主任列表
+     */
+    @Override
+    public List<ClassTeacherVo> selectUserByClassTeacher() {
+        return userMapper.selectUserByClassTeacher();
+    }
 }

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 51 - 5
ruoyi-system/src/main/resources/mapper/department/StuBaseInfoMapper.xml


+ 99 - 0
ruoyi-system/src/main/resources/mapper/department/StuBookApplyMapper.xml

@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.StuBookApplyMapper">
+    
+    <resultMap type="StuBookApply" id="StuBookApplyResult">
+        <result property="id"    column="id"    />
+        <result property="studentId"    column="student_id"    />
+        <result property="classId"    column="class_id"    />
+        <result property="status"    column="status"    />
+        <result property="remark"    column="remark"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="updateBy"    column="update_by"    />
+    </resultMap>
+
+    <sql id="selectStuBookApplyVo">
+        select id, student_id, class_id, status, remark, create_time, create_by, update_time, update_by from stu_book_apply
+    </sql>
+
+    <select id="selectStuBookApplyList" parameterType="com.ruoyi.system.domain.param.ApplyListParam" resultType="com.ruoyi.system.domain.vo.ApplyListVo">
+        SELECT
+            o.id,
+            b.profession_name AS professionName,
+            b.student_name AS studentName,
+            b.class_name AS className,
+            u.nick_name AS nickName,
+            o.`status` AS status,
+            o.create_time AS createTime
+        FROM
+            stu_book_apply o
+        JOIN stu_base_info b ON o.student_id = b.id
+        JOIN sys_user u ON o.create_by = u.user_id
+        <where>
+            <if test="studentName != null "> and b.student_name like concat('%', #{studentName}, '%')</if>
+            <if test="createBy != null "> and o.create_by = #{createBy}</if>
+        </where>
+    </select>
+    
+    <select id="selectStuBookApplyById" parameterType="Long" resultMap="StuBookApplyResult">
+        <include refid="selectStuBookApplyVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertStuBookApply" parameterType="StuBookApply">
+        insert into stu_book_apply
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="studentId != null">student_id,</if>
+            <if test="classId != null">class_id,</if>
+            <if test="status != null">status,</if>
+            <if test="remark != null">remark,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="updateBy != null">update_by,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="studentId != null">#{studentId},</if>
+            <if test="classId != null">#{classId},</if>
+            <if test="status != null">#{status},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+         </trim>
+    </insert>
+
+    <update id="updateStuBookApply" parameterType="StuBookApply">
+        update stu_book_apply
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="studentId != null">student_id = #{studentId},</if>
+            <if test="classId != null">class_id = #{classId},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteStuBookApplyById" parameterType="Long">
+        delete from stu_book_apply where id = #{id}
+    </delete>
+
+    <delete id="deleteStuBookApplyByIds" parameterType="String">
+        delete from stu_book_apply where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    
+</mapper>

+ 75 - 0
ruoyi-system/src/main/resources/mapper/department/StuClassBookConfigMapper.xml

@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.StuClassBookConfigMapper">
+    
+    <resultMap type="StuClassBookConfig" id="StuClassBookConfigResult">
+        <result property="classId"    column="class_id"    />
+        <result property="textBookId"    column="text_book_id"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="createBy"    column="create_by"    />
+    </resultMap>
+
+    <sql id="selectStuClassBookConfigVo">
+        select class_id, text_book_id, create_time, create_by from stu_class_book_config
+    </sql>
+
+    <select id="selectClassBookConfigListByClassId" parameterType="Long" resultType="com.ruoyi.system.domain.vo.BookConfigVo">
+        SELECT
+            c.text_book_id AS id,
+            t.name as name
+        FROM
+            stu_class_book_config c
+        JOIN stu_text_book t ON c.text_book_id = t.id
+        WHERE
+            c.class_id = #{classId};
+    </select>
+    
+    <select id="selectStuClassBookConfigById" parameterType="Long" resultMap="StuClassBookConfigResult">
+        <include refid="selectStuClassBookConfigVo"/>
+        where class_id = #{classId}
+    </select>
+        
+    <insert id="insertStuClassBookConfig" parameterType="StuClassBookConfig">
+        insert into stu_class_book_config
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="classId != null">class_id,</if>
+            <if test="textBookId != null">text_book_id,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="createBy != null">create_by,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="classId != null">#{classId},</if>
+            <if test="textBookId != null">#{textBookId},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+         </trim>
+    </insert>
+
+    <update id="updateStuClassBookConfig" parameterType="StuClassBookConfig">
+        update stu_class_book_config
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="textBookId != null">text_book_id = #{textBookId},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+        </trim>
+        where class_id = #{classId}
+    </update>
+
+    <delete id="deleteStuClassBookConfigByParam" parameterType="com.ruoyi.system.domain.param.ClassBookConfigParam">
+        delete from stu_class_book_config where class_id = #{classId} and text_book_id = #{textBookId}
+    </delete>
+
+    <delete id="deleteStuClassBookConfigByParams" parameterType="com.ruoyi.system.domain.param.ClassBookConfigParam">
+        <foreach item="param" collection="array" open="(" separator="," close=")">
+            delete from stu_class_book_config where class_id = #{param.classId} and text_book_id = #{param.textBookId}
+        </foreach>
+    </delete>
+
+    <select id="selectClassBookConfigByClassIdAndBookId" parameterType="StuClassBookConfig" resultMap="StuClassBookConfigResult">
+        <include refid="selectStuClassBookConfigVo"/>
+            where class_id = #{classId} AND text_book_id = #{textBookId}
+    </select>
+    
+</mapper>

+ 5 - 1
ruoyi-system/src/main/resources/mapper/department/StuClassMapper.xml

@@ -17,6 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
         <result property="className"    column="class_name"    />
         <result property="classTeacher"    column="class_teacher"    />
+        <result property="classTeacherId"  column="class_teacher_id" />
         <result property="grade"    column="grade"    />
         <result property="graduationStatus"    column="graduation_status"    />
         <result property="remark"    column="remark"    />
@@ -27,7 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectStuClassVo">
-        select cl.id, cl.profession_id,p.profession_name,p.department_id,d.department_name,d.college_id,co.college_name, cl.class_name, cl.class_teacher, cl.grade, cl.graduation_status, cl.remark, cl.create_by, cl.create_time, cl.update_by, cl.update_time from stu_class cl
+        select cl.id, cl.profession_id,p.profession_name,p.department_id,d.department_name,d.college_id,co.college_name, cl.class_name, cl.class_teacher, cl.class_teacher_id,cl.grade, cl.graduation_status, cl.remark, cl.create_by, cl.create_time, cl.update_by, cl.update_time from stu_class cl
     </sql>
 
     <select id="selectStuClassList" parameterType="StuClass" resultMap="StuClassResult">
@@ -61,6 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="professionId != null">profession_id,</if>
             <if test="className != null">class_name,</if>
             <if test="classTeacher != null">class_teacher,</if>
+            <if test="classTeacherId != null">class_teacher_id,</if>
             <if test="grade != null">grade,</if>
             <if test="graduationStatus != null">graduation_status,</if>
             <if test="remark != null">remark,</if>
@@ -75,6 +77,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="professionId != null">#{professionId},</if>
             <if test="className != null">#{className},</if>
             <if test="classTeacher != null">#{classTeacher},</if>
+            <if test="classTeacherId != null">#{classTeacherId},</if>
             <if test="grade != null">#{grade},</if>
             <if test="graduationStatus != null">#{graduationStatus},</if>
             <if test="remark != null">#{remark},</if>
@@ -92,6 +95,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="professionId != null">profession_id = #{professionId},</if>
             <if test="className != null">class_name = #{className},</if>
             <if test="classTeacher != null">class_teacher = #{classTeacher},</if>
+            <if test="classTeacherId != null">class_teacher_id = #{classTeacherId},</if>
             <if test="grade != null">grade = #{grade},</if>
             <if test="graduationStatus != null">graduation_status = #{graduationStatus},</if>
             <if test="remark != null">remark = #{remark},</if>

+ 95 - 0
ruoyi-system/src/main/resources/mapper/department/StuOutSchoolApplyMapper.xml

@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.StuOutSchoolApplyMapper">
+    
+    <resultMap type="StuOutSchoolApply" id="StuOutSchoolApplyResult">
+        <result property="id"    column="id"    />
+        <result property="studentId"    column="student_id"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="status"    column="status"    />
+        <result property="remark"    column="remark"    />
+        <result property="updateBy"    column="update_by"    />
+    </resultMap>
+
+    <sql id="selectStuOutSchoolApplyVo">
+        select id, student_id, create_time, create_by, update_time, status, remark, update_by from stu_out_school_apply
+    </sql>
+
+    <select id="selectStuOutSchoolApplyList" parameterType="com.ruoyi.system.domain.param.ApplyListParam" resultType="com.ruoyi.system.domain.vo.ApplyListVo">
+        SELECT
+            o.id,
+            b.profession_name AS professionName,
+            b.student_name AS studentName,
+            b.class_name AS className,
+            u.nick_name AS nickName,
+            o.`status` AS status,
+            o.create_time AS createTime
+        FROM
+            stu_out_school_apply o
+            JOIN stu_base_info b ON o.student_id = b.id
+            JOIN sys_user u ON o.create_by = u.user_id
+        <where>  
+            <if test="studentName != null "> and b.student_name like concat('%', #{studentName}, '%')</if>
+            <if test="createBy != null "> and o.create_by = #{createBy}</if>
+        </where>
+    </select>
+    
+    <select id="selectStuOutSchoolApplyById" parameterType="Long" resultMap="StuOutSchoolApplyResult">
+        <include refid="selectStuOutSchoolApplyVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertStuOutSchoolApply" parameterType="StuOutSchoolApply">
+        insert into stu_out_school_apply
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="studentId != null">student_id,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="status != null">status,</if>
+            <if test="remark != null">remark,</if>
+            <if test="updateBy != null">update_by,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="studentId != null">#{studentId},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="status != null">#{status},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+         </trim>
+    </insert>
+
+    <update id="updateStuOutSchoolApply" parameterType="StuOutSchoolApply">
+        update stu_out_school_apply
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="studentId != null">student_id = #{studentId},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteStuOutSchoolApplyById" parameterType="Long">
+        delete from stu_out_school_apply where id = #{id}
+    </delete>
+
+    <delete id="deleteStuOutSchoolApplyByIds" parameterType="String">
+        delete from stu_out_school_apply where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    
+</mapper>

+ 95 - 0
ruoyi-system/src/main/resources/mapper/department/StuQuitSchoolApplyMapper.xml

@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.StuQuitSchoolApplyMapper">
+    
+    <resultMap type="StuQuitSchoolApply" id="StuQuitSchoolApplyResult">
+        <result property="id"    column="id"    />
+        <result property="studentId"    column="student_id"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="status"    column="status"    />
+        <result property="remark"    column="remark"    />
+        <result property="updateBy"    column="update_by"    />
+    </resultMap>
+
+    <sql id="selectStuQuitSchoolApplyVo">
+        select id, student_id, create_time, create_by, update_time, status, remark, update_by from stu_quit_school_apply
+    </sql>
+
+    <select id="selectStuQuitSchoolApplyList" parameterType="com.ruoyi.system.domain.param.ApplyListParam" resultType="com.ruoyi.system.domain.vo.ApplyListVo">
+        SELECT
+            o.id,
+            b.profession_name AS professionName,
+            b.student_name AS studentName,
+            b.class_name AS className,
+            u.nick_name AS nickName,
+            o.`status` AS status,
+            o.create_time AS createTime
+        FROM
+            stu_quit_school_apply o
+        JOIN stu_base_info b ON o.student_id = b.id
+        JOIN sys_user u ON o.create_by = u.user_id
+        <where>
+            <if test="studentName != null "> and b.student_name like concat('%', #{studentName}, '%')</if>
+            <if test="createBy != null "> and o.create_by = #{createBy}</if>
+        </where>
+    </select>
+    
+    <select id="selectStuQuitSchoolApplyById" parameterType="Long" resultMap="StuQuitSchoolApplyResult">
+        <include refid="selectStuQuitSchoolApplyVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertStuQuitSchoolApply" parameterType="StuQuitSchoolApply">
+        insert into stu_quit_school_apply
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="studentId != null">student_id,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="status != null">status,</if>
+            <if test="remark != null">remark,</if>
+            <if test="updateBy != null">update_by,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="studentId != null">#{studentId},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="status != null">#{status},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+         </trim>
+    </insert>
+
+    <update id="updateStuQuitSchoolApply" parameterType="StuQuitSchoolApply">
+        update stu_quit_school_apply
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="studentId != null">student_id = #{studentId},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteStuQuitSchoolApplyById" parameterType="Long">
+        delete from stu_quit_school_apply where id = #{id}
+    </delete>
+
+    <delete id="deleteStuQuitSchoolApplyByIds" parameterType="String">
+        delete from stu_quit_school_apply where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    
+</mapper>

+ 108 - 0
ruoyi-system/src/main/resources/mapper/department/StuTextBookMapper.xml

@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.StuTextBookMapper">
+    
+    <resultMap type="StuTextBook" id="StuTextBookResult">
+        <result property="id"    column="id"    />
+        <result property="name"    column="name"    />
+        <result property="price"    column="price"    />
+        <result property="discountPrice"    column="discount_price"    />
+        <result property="amount"    column="amount"    />
+        <result property="remark"    column="remark"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectStuTextBookVo">
+        select id, name, price, discount_price, amount, remark, del_flag, create_by, create_time, update_by, update_time from stu_text_book
+    </sql>
+
+    <select id="selectStuTextBookList" parameterType="StuTextBook" resultMap="StuTextBookResult">
+        <include refid="selectStuTextBookVo"/>
+        <where>
+            del_flag = 0
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="price != null "> and price = #{price}</if>
+            <if test="discountPrice != null "> and discount_price = #{discountPrice}</if>
+            <if test="amount != null "> and amount = #{amount}</if>
+        </where>
+    </select>
+    
+    <select id="selectStuTextBookById" parameterType="String" resultMap="StuTextBookResult">
+        <include refid="selectStuTextBookVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertStuTextBook" parameterType="StuTextBook">
+        insert into stu_text_book
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="name != null">name,</if>
+            <if test="price != null">price,</if>
+            <if test="discountPrice != null">discount_price,</if>
+            <if test="amount != null">amount,</if>
+            <if test="remark != null">remark,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="name != null">#{name},</if>
+            <if test="price != null">#{price},</if>
+            <if test="discountPrice != null">#{discountPrice},</if>
+            <if test="amount != null">#{amount},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateStuTextBook" parameterType="StuTextBook">
+        update stu_text_book
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="name != null">name = #{name},</if>
+            <if test="price != null">price = #{price},</if>
+            <if test="discountPrice != null">discount_price = #{discountPrice},</if>
+            <if test="amount != null">amount = #{amount},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteStuTextBookById" parameterType="String">
+        UPDATE stu_text_book SET del_flag = 1 where id = #{id}
+    </delete>
+
+    <delete id="deleteStuTextBookByIds" parameterType="String">
+        UPDATE stu_text_book SET del_flag = 1 where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <select id="selectClassBookList" resultType="com.ruoyi.system.domain.vo.BookConfigVo">
+        SELECT id,name FROM stu_text_book WHERE del_flag = 0
+    </select>
+    <!-- 根据班级id查询教材 -->
+    <select id="selectTextBookByClassId" resultMap="StuTextBookResult" parameterType="Long">
+        SELECT b.id, b.name, b.price, b.discount_price, b.amount, b.remark, b.del_flag, b.create_by, b.create_time, b.update_by, b.update_time
+            FROM stu_class_book_config c JOIN stu_text_book b ON c.text_book_id = b.id WHERE c.class_id=#{classId}
+    </select>
+
+</mapper>

+ 8 - 3
ruoyi-system/src/main/resources/mapper/dorm/StuRoomMapper.xml

@@ -9,13 +9,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="buiddingId"    column="buidding_id"    />
         <result property="buildingName"    column="building_name"    />
         <result property="roomName"    column="room_name"    />
+        <result property="roomType"    column="room_type"    />
         <result property="remark"    column="remark"    />
         <result property="createTime"    column="create_time"    />
         <result property="updateTime"    column="update_time"    />
     </resultMap>
 
     <sql id="selectStuRoomVo">
-        select id, buidding_id, building_name, room_name, remark, create_time, update_time from stu_room
+        select id, buidding_id, building_name,room_type, room_name, remark, create_time, update_time from stu_room
     </sql>
 
     <select id="selectStuRoomList" parameterType="StuRoom" resultMap="StuRoomResult">
@@ -24,6 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="buiddingId != null "> and buidding_id = #{buiddingId}</if>
             <if test="buildingName != null  and buildingName != ''"> and building_name like concat('%', #{buildingName}, '%')</if>
             <if test="roomName != null  and roomName != ''"> and room_name like concat('%', #{roomName}, '%')</if>
+            <if test="roomType != null  and roomType != ''"> and room_type like concat('%', #{roomType}, '%')</if>
         </where>
     </select>
     
@@ -38,6 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="buiddingId != null">buidding_id,</if>
             <if test="buildingName != null">building_name,</if>
             <if test="roomName != null">room_name,</if>
+            <if test="roomType != null">room_type,</if>
             <if test="remark != null">remark,</if>
             <if test="createTime != null">create_time,</if>
             <if test="updateTime != null">update_time,</if>
@@ -46,6 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="buiddingId != null">#{buiddingId},</if>
             <if test="buildingName != null">#{buildingName},</if>
             <if test="roomName != null">#{roomName},</if>
+            <if test="roomType != null">#{roomType},</if>
             <if test="remark != null">#{remark},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="updateTime != null">#{updateTime},</if>
@@ -58,6 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="buiddingId != null">buidding_id = #{buiddingId},</if>
             <if test="buildingName != null">building_name = #{buildingName},</if>
             <if test="roomName != null">room_name = #{roomName},</if>
+            <if test="roomType != null">room_type = #{roomType},</if>
             <if test="remark != null">remark = #{remark},</if>
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
@@ -82,8 +87,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <!-- 根据楼宇id查询寝室 -->
-    <select id="queryRoomByBuildingId" parameterType="Long" resultMap="StuRoomResult">
-        select id,room_name from stu_room where buidding_id = #{buildingId}
+    <select id="queryRoomByBuildingId" resultMap="StuRoomResult">
+        select id,room_name from stu_room where buidding_id = #{buildingId} and room_type = #{roomType}
     </select>
     
 </mapper>

+ 7 - 0
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -178,5 +178,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			#{userId}
         </foreach> 
  	</delete>
+
+	<select id="selectUserByClassTeacher" resultType="com.ruoyi.system.domain.vo.ClassTeacherVo">
+		SELECT u.user_id AS id,u.nick_name AS name FROM sys_user u
+					JOIN sys_user_role ur ON  u.user_id = ur.user_id
+					JOIN sys_role r ON ur.role_id = r.role_id
+					WHERE u.del_flag = 0 AND r.role_key = 'classTeacher'
+	</select>
 	
 </mapper>