Browse Source

添加在线选宿舍功能

liu 1 year ago
parent
commit
56f4b7549b

+ 1 - 1
src/main/java/com/template/AutoCode.java

@@ -56,7 +56,7 @@ public class AutoCode {
         mpg.setPackageInfo(pc);
         mpg.setPackageInfo(pc);
         //4、策略配置
         //4、策略配置
         StrategyConfig strategy = new StrategyConfig();
         StrategyConfig strategy = new StrategyConfig();
-        strategy.setInclude("welcome_org","welcome_visitor","welcome_city"); // 设置要映射的表名
+        strategy.setInclude("welcome_dormitory"); // 设置要映射的表名
         strategy.setNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setColumnNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setColumnNaming(NamingStrategy.underline_to_camel);//下划线转驼峰
         strategy.setEntityLombokModel(true); // 自动lombok;
         strategy.setEntityLombokModel(true); // 自动lombok;

+ 32 - 0
src/main/java/com/template/api/WelcomeDormitoryControllerAPI.java

@@ -0,0 +1,32 @@
+package com.template.api;
+
+import com.template.model.pojo.WelcomeStudentDormitory;
+import com.template.model.request.InsertStudentRequest;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@RequestMapping("/api/welcome-dormitory")
+public interface WelcomeDormitoryControllerAPI {
+
+    @GetMapping(value = "/groupBuild")
+    @ApiOperation(value = "楼栋分组", notes = "楼栋分组", httpMethod = "GET")
+    CommonResult groupBuild(String sex,String college,String gradestr,String school);
+
+
+    @GetMapping(value = "/groupDormitory")
+    @ApiOperation(value = "寝室分组", notes = "寝室分组", httpMethod = "GET")
+    CommonResult groupDormitory(String sex,String college,String gradestr,String school,String buildName);
+
+
+    @GetMapping(value = "/groupBedNumber")
+    @ApiOperation(value = "床位分组", notes = "床位分组", httpMethod = "GET")
+    CommonResult groupBedNumber(String sex,String college,String gradestr,String school,String buildName,String dormitoryName);
+
+
+}

+ 23 - 0
src/main/java/com/template/api/WelcomeStudentDormitoryControllerAPI.java

@@ -0,0 +1,23 @@
+package com.template.api;
+
+import com.template.model.pojo.WelcomeStudentDormitory;
+import com.template.model.result.CommonResult;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@RequestMapping("/api/welcome-student-dormitory")
+public interface WelcomeStudentDormitoryControllerAPI {
+
+    @PostMapping(value = "/submit")
+    @ApiOperation(value = "提交床位信息", notes = "提交床位信息", httpMethod = "POST")
+    CommonResult submit(@RequestBody WelcomeStudentDormitory welcomeStudentDormitory);
+
+
+    @GetMapping(value = "/dormitoryDetails")
+    @ApiOperation(value = "宿舍详情", notes = "宿舍详情", httpMethod = "GET")
+    CommonResult dormitoryDetails(String buildName,String dormitoryName,String studentCard);
+
+}

+ 71 - 2
src/main/java/com/template/controller/WelcomeDormitoryController.java

@@ -1,10 +1,25 @@
 package com.template.controller;
 package com.template.controller;
 
 
 
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.template.api.WelcomeDormitoryControllerAPI;
+import com.template.api.WelcomeStudentControllerAPI;
+import com.template.model.pojo.WelcomeDormitory;
+import com.template.model.pojo.WelcomeStudent;
+import com.template.model.pojo.WelcomeStudentDormitory;
+import com.template.model.result.CommonResult;
+import com.template.services.WelcomeDormitoryService;
+import com.template.services.WelcomeStudentDormitoryService;
+import com.template.services.WelcomeStudentService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  *  前端控制器
  *  前端控制器
@@ -14,8 +29,62 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2025-06-13
  * @since 2025-06-13
  */
  */
 @RestController
 @RestController
-@RequestMapping("/auto/welcome-dormitory")
-public class WelcomeDormitoryController {
+public class WelcomeDormitoryController implements WelcomeDormitoryControllerAPI {
+
+    @Autowired
+    WelcomeDormitoryService welcomeDormitoryService;
+
+    @Autowired
+    WelcomeStudentDormitoryService welcomeStudentDormitoryService;
+
+    @Override
+    public CommonResult groupBuild(String sex,String college,String gradestr,String school) {
+
+        List<String> list = welcomeDormitoryService.groupBuild(sex,college,gradestr,school);
+
+        return CommonResult.ok(list);
+    }
+
+    @Override
+    public CommonResult groupDormitory(String sex,String college,String gradestr,String school,String buildName) {
+
+        List<String> list = welcomeDormitoryService.groupDormitory(sex,college,gradestr,buildName,school);
+
+        return CommonResult.ok(list);
+    }
+
+    @Override
+    public CommonResult groupBedNumber(String sex,String college,String gradestr,String school,String buildName, String dormitoryName) {
+
+//        查询对应寝室
+        LambdaQueryWrapper<WelcomeDormitory> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(WelcomeDormitory::getBuild,buildName)
+                .eq(WelcomeDormitory::getDormitory,dormitoryName)
+                .eq(WelcomeDormitory::getSex,sex)
+                .eq(WelcomeDormitory::getCollege,college)
+                .eq(WelcomeDormitory::getGradestr,gradestr)
+                .eq(WelcomeDormitory::getSchool,school);
+        WelcomeDormitory welcomeDormitory = welcomeDormitoryService.getOne(wrapper);
+//        获取床位数
+        Integer bedNumber = welcomeDormitory.getBedNumber();
+
+//        查找哪些已经入住了
+        LambdaQueryWrapper<WelcomeStudentDormitory> wrapperStudentDormitory=new LambdaQueryWrapper<>();
+        wrapperStudentDormitory.eq(WelcomeStudentDormitory::getBuilding,buildName)
+                        .eq(WelcomeStudentDormitory::getDormitory,dormitoryName);
+        List<WelcomeStudentDormitory> list1 = welcomeStudentDormitoryService.list(wrapperStudentDormitory);
+
+        ArrayList<Integer> bedNums = new ArrayList<>();
+        for (int i = 1; i <= bedNumber; i++) {
+            bedNums.add(i);
+        }
+
+        for (WelcomeStudentDormitory welcomeStudentDormitory : list1) {
+            Integer bedNum = Integer.valueOf(welcomeStudentDormitory.getBedNum());
+            bedNums.remove(bedNum);
+        }
 
 
+        return CommonResult.ok(bedNums);
+    }
 }
 }
 
 

+ 101 - 2
src/main/java/com/template/controller/WelcomeStudentDormitoryController.java

@@ -1,10 +1,30 @@
 package com.template.controller;
 package com.template.controller;
 
 
 
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.template.annotation.PassToken;
+import com.template.api.WelcomeStudentDormitoryControllerAPI;
+import com.template.model.pojo.WelcomeDormitory;
+import com.template.model.pojo.WelcomeStudent;
+import com.template.model.pojo.WelcomeStudentDormitory;
+import com.template.model.result.CommonResult;
+import com.template.model.vo.DormitoryDetailsVo;
+import com.template.services.WelcomeDormitoryService;
+import com.template.services.WelcomeStudentDormitoryService;
+import com.template.services.WelcomeStudentService;
+import javafx.beans.binding.SetBinding;
+import org.aspectj.weaver.ast.Var;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  *  前端控制器
  *  前端控制器
@@ -14,8 +34,87 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2025-06-13
  * @since 2025-06-13
  */
  */
 @RestController
 @RestController
-@RequestMapping("/auto/welcome-student-dormitory")
-public class WelcomeStudentDormitoryController {
+public class WelcomeStudentDormitoryController implements WelcomeStudentDormitoryControllerAPI {
+
+    @Autowired
+    WelcomeStudentDormitoryService welcomeStudentDormitoryService;
+
+    @Autowired
+    WelcomeStudentService welcomeStudentService;
+
+    @Autowired
+    WelcomeDormitoryService welcomeDormitoryService;
+
+    @Override
+    public CommonResult submit(WelcomeStudentDormitory welcomeStudentDormitory) {
+        String studentCard = welcomeStudentDormitory.getStudentCard();
+        LambdaQueryWrapper<WelcomeStudentDormitory> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(WelcomeStudentDormitory::getStudentCard,studentCard);
+        WelcomeStudentDormitory one = welcomeStudentDormitoryService.getOne(wrapper);
+        if (ObjectUtils.isNotEmpty(one)) {
+            return CommonResult.fail("已添加宿舍信息,请勿重复添加");
+        }
+
+        boolean save = welcomeStudentDormitoryService.save(welcomeStudentDormitory);
+        if (save) {
+            return CommonResult.ok();
+        }
+        return CommonResult.fail();
+    }
+
+    @Override
+    public CommonResult dormitoryDetails( String buildName, String dormitoryName, String studentCard) {
+
+        //        查询对应床位数量
+        LambdaQueryWrapper<WelcomeDormitory> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(WelcomeDormitory::getBuild,buildName)
+                .eq(WelcomeDormitory::getDormitory,dormitoryName);
+        WelcomeDormitory welcomeDormitory = welcomeDormitoryService.getOne(wrapper);
+//        获取床位数
+        Integer bedNumber = welcomeDormitory.getBedNumber();
+
+
+        //        查找哪些已经入住了
+        LambdaQueryWrapper<WelcomeStudentDormitory> wrapperStudentDormitory=new LambdaQueryWrapper<>();
+        wrapperStudentDormitory.eq(WelcomeStudentDormitory::getBuilding,buildName)
+                .eq(WelcomeStudentDormitory::getDormitory,dormitoryName);
+        List<WelcomeStudentDormitory> list1 = welcomeStudentDormitoryService.list(wrapperStudentDormitory);
+
+        LambdaQueryWrapper<WelcomeStudentDormitory> wrapperOne=new LambdaQueryWrapper<>();
+        wrapperOne.eq(WelcomeStudentDormitory::getStudentCard,studentCard);
+        WelcomeStudentDormitory studentDormitory = welcomeStudentDormitoryService.getOne(wrapperOne);
+        Integer bedNum1 = Integer.valueOf(studentDormitory.getBedNum());
+
+
+        LambdaQueryWrapper<WelcomeStudent> wrapperStudent=new LambdaQueryWrapper<>();
+        wrapperStudent.eq(WelcomeStudent::getCardId,studentCard);
+        WelcomeStudent one = welcomeStudentService.getOne(wrapperStudent);
+
+
+        ArrayList<DormitoryDetailsVo> dormitoryDetailsVos = new ArrayList<>();
+        for (int i = 1; i <= bedNumber; i++) {
+            DormitoryDetailsVo dormitoryDetailsVo = new DormitoryDetailsVo();
+            dormitoryDetailsVo.setBedNum(i+"");
+            dormitoryDetailsVo.setDormitory(dormitoryName);
+            dormitoryDetailsVo.setBuilding(buildName);
+            if (bedNum1==i) {
+                dormitoryDetailsVo.setStatus(1);
+                dormitoryDetailsVo.setWelcomeStudent(one);
+            }else {
+//            默认设置成没人
+                dormitoryDetailsVo.setStatus(2);
+                for (WelcomeStudentDormitory welcomeStudentDormitory : list1) {
+                    Integer bedNum = Integer.valueOf(welcomeStudentDormitory.getBedNum());
+                    if (i == bedNum) {
+                        dormitoryDetailsVo.setStatus(1);
+                        break;
+                    }
+                }
+            }
+            dormitoryDetailsVos.add(dormitoryDetailsVo);
+        }
 
 
+        return CommonResult.ok(dormitoryDetailsVos);
+    }
 }
 }
 
 

+ 7 - 0
src/main/java/com/template/mapper/WelcomeDormitoryMapper.java

@@ -2,8 +2,12 @@ package com.template.mapper;
 
 
 import com.template.model.pojo.WelcomeDormitory;
 import com.template.model.pojo.WelcomeDormitory;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Repository;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  *  Mapper 接口
  *  Mapper 接口
@@ -15,4 +19,7 @@ import org.springframework.stereotype.Repository;
 @Repository
 @Repository
 public interface WelcomeDormitoryMapper extends BaseMapper<WelcomeDormitory> {
 public interface WelcomeDormitoryMapper extends BaseMapper<WelcomeDormitory> {
 
 
+    List<String> groupBuild(@Param("sex") String sex,@Param("college") String college,@Param("gradestr") String gradestr,@Param("school")String school);
+
+    List<String> groupDormitory(@Param("sex") String sex,@Param("college") String college,@Param("gradestr") String gradestr,@Param("school")String school, @Param("buildName") String buildName);
 }
 }

+ 23 - 0
src/main/java/com/template/model/vo/DormitoryDetailsVo.java

@@ -0,0 +1,23 @@
+package com.template.model.vo;
+
+import com.template.model.pojo.WelcomeStudent;
+import com.template.services.WelcomeStudentService;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class DormitoryDetailsVo {
+    private WelcomeStudent welcomeStudent;
+
+    @ApiModelProperty(value = "楼栋")
+    private String building;
+
+    @ApiModelProperty(value = "寝室号")
+    private String dormitory;
+
+    @ApiModelProperty(value = "床位号")
+    private String bedNum;
+
+    @ApiModelProperty(value = "状态,1有人,2无人")
+    private Integer status;
+}

+ 6 - 0
src/main/java/com/template/services/WelcomeDormitoryService.java

@@ -5,6 +5,8 @@ import com.template.model.pojo.WelcomeDormitory;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.template.model.result.PageUtils;
 import com.template.model.result.PageUtils;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  *  服务类
  *  服务类
@@ -23,4 +25,8 @@ public interface WelcomeDormitoryService extends IService<WelcomeDormitory> {
     int deleteWelcomeDormitoryById(String id);
     int deleteWelcomeDormitoryById(String id);
 
 
     WelcomeDormitory getManageById(String id);
     WelcomeDormitory getManageById(String id);
+
+    List<String> groupBuild(String sex,String college,String gradestr,String school);
+
+    List<String> groupDormitory(String sex,String college,String gradestr,String school,String buildName);
 }
 }

+ 14 - 0
src/main/java/com/template/services/impl/WelcomeDormitoryServiceImpl.java

@@ -13,6 +13,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  *  服务实现类
  *  服务实现类
@@ -59,4 +61,16 @@ public class WelcomeDormitoryServiceImpl extends ServiceImpl<WelcomeDormitoryMap
         WelcomeDormitory result = welcomeDormitoryMapper.selectById(id);
         WelcomeDormitory result = welcomeDormitoryMapper.selectById(id);
         return result;
         return result;
     }
     }
+
+    @Override
+    public List<String> groupBuild(String sex,String college,String gradestr,String school) {
+        List<String> result = welcomeDormitoryMapper.groupBuild(sex,college,gradestr,school);
+        return result;
+    }
+
+    @Override
+    public List<String> groupDormitory(String sex,String college,String gradestr,String school,String buildName) {
+        List<String> result = welcomeDormitoryMapper.groupDormitory(sex,college,gradestr,buildName,school);
+        return result;
+    }
 }
 }

+ 22 - 0
src/main/resources/mapper/template/WelcomeDormitoryMapper.xml

@@ -2,4 +2,26 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.template.mapper.WelcomeDormitoryMapper">
 <mapper namespace="com.template.mapper.WelcomeDormitoryMapper">
 
 
+    <select id="groupBuild" resultType="java.lang.String">
+        SELECT build
+        FROM `welcome_dormitory`
+        WHERE deleted = 0
+        AND sex= #{sex}
+        AND college= #{college}
+        AND gradestr= #{gradestr}
+        AND school= #{school}
+        GROUP BY build
+    </select>
+
+    <select id="groupDormitory" resultType="java.lang.String">
+        SELECT dormitory
+        FROM `welcome_dormitory`
+        WHERE deleted = 0
+          AND sex= #{sex}
+          AND college= #{college}
+          AND gradestr= #{gradestr}
+          AND school= #{school}
+          AND build = #{buildName}
+        GROUP BY dormitory
+    </select>
 </mapper>
 </mapper>