Browse Source

删除寝室,如果床位上有学生信息,则提示不能删除

dzx 1 year ago
parent
commit
82eac754eb

+ 5 - 1
src/main/java/com/xjrsoft/module/room/controller/RoomController.java

@@ -94,7 +94,11 @@ public class RoomController {
     @ApiOperation(value = "删除寝室")
     @SaCheckPermission("room:delete")
     public RT<Boolean> delete(@Valid @RequestBody Long id){
-        return RT.ok(roomService.deleteReachBed(id));
+        String result = roomService.deleteReachBed(id);
+        if("ok".equals(result)){
+            return RT.ok(true);
+        }
+        return RT.error(result);
 
     }
     @PostMapping("/import")

+ 1 - 1
src/main/java/com/xjrsoft/module/room/service/IRoomService.java

@@ -35,5 +35,5 @@ public interface IRoomService extends MPJBaseService<Room> {
     /**
      * 批量添加
      */
-    Boolean deleteReachBed(Long id);
+    String deleteReachBed(Long id);
 }

+ 12 - 2
src/main/java/com/xjrsoft/module/room/service/impl/RoomServiceImpl.java

@@ -4,6 +4,7 @@ import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.toolkit.MPJWrappers;
 import com.xjrsoft.module.room.dto.AddRoomDto;
 import com.xjrsoft.module.room.dto.RoomPageDto;
 import com.xjrsoft.module.room.entity.Room;
@@ -12,6 +13,7 @@ import com.xjrsoft.module.room.mapper.RoomBedMapper;
 import com.xjrsoft.module.room.mapper.RoomMapper;
 import com.xjrsoft.module.room.service.IRoomService;
 import com.xjrsoft.module.room.vo.RoomPageVo;
+import com.xjrsoft.module.student.entity.BaseStudent;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
@@ -87,11 +89,19 @@ public class RoomServiceImpl extends MPJBaseServiceImpl<RoomMapper, Room> implem
     }
 
     @Override
-    public Boolean deleteReachBed(Long id) {
+    public String deleteReachBed(Long id) {
+        List<RoomBed> bedList = roomBedMapper.selectList(
+            MPJWrappers.<RoomBed>lambdaJoin()
+            .select(BaseStudent::getUserId)
+            .eq(RoomBed::getRoomId, id).isNotNull(RoomBed::getStudentUserId)
+        );
+        if(bedList != null && !bedList.isEmpty()){
+            return "寝室里面已安排学生,无法删除";
+        }
         roomMapper.deleteById(id);
         Map<String, Object> param = new HashMap<>();
         param.put("room_id", id);
         roomBedMapper.deleteByMap(param);
-        return true;
+        return "ok";
     }
 }