Browse Source

宿管员管理 提交

dzx 1 year ago
parent
commit
d6b4a0ff76

+ 2 - 13
src/main/java/com/xjrsoft/module/room/controller/RoomTeacherAppointController.java

@@ -69,26 +69,15 @@ public class RoomTeacherAppointController {
     @ApiOperation(value = "新增宿管任命")
     @SaCheckPermission("roomteacherappoint:add")
     public RT<Boolean> add(@Valid @RequestBody AddRoomTeacherAppointDto dto){
-        RoomTeacherAppoint roomTeacherAppoint = BeanUtil.toBean(dto, RoomTeacherAppoint.class);
-        boolean isSuccess = roomTeacherAppointService.save(roomTeacherAppoint);
+        boolean isSuccess = roomTeacherAppointService.saveBatch(dto);
         return RT.ok(isSuccess);
     }
 
-    @PutMapping
-    @ApiOperation(value = "修改宿管任命")
-    @SaCheckPermission("roomteacherappoint:edit")
-    public RT<Boolean> update(@Valid @RequestBody UpdateRoomTeacherAppointDto dto){
-
-        RoomTeacherAppoint roomTeacherAppoint = BeanUtil.toBean(dto, RoomTeacherAppoint.class);
-        return RT.ok(roomTeacherAppointService.updateById(roomTeacherAppoint));
-
-    }
-
     @DeleteMapping
     @ApiOperation(value = "删除宿管任命")
     @SaCheckPermission("roomteacherappoint:delete")
     public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
-        return RT.ok(roomTeacherAppointService.removeBatchByIds(ids));
+        return RT.ok(roomTeacherAppointService.clearAppoint(ids));
 
     }
 }

+ 2 - 17
src/main/java/com/xjrsoft/module/room/dto/AddRoomTeacherAppointDto.java

@@ -2,14 +2,9 @@ package com.xjrsoft.module.room.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import java.io.Serializable;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
-import java.time.LocalTime;
-import java.time.LocalDateTime;
-import java.math.BigDecimal;
+import java.io.Serializable;
 import java.util.List;
-import java.util.Date;
 
 
 
@@ -24,11 +19,6 @@ public class AddRoomTeacherAppointDto implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    /**
-    * 序号
-    */
-    @ApiModelProperty("序号")
-    private Integer sortCode;
     /**
     * 寝室编号(room)
     */
@@ -38,11 +28,6 @@ public class AddRoomTeacherAppointDto implements Serializable {
     * 用户编号
     */
     @ApiModelProperty("用户编号")
-    private Long userId;
-    /**
-    * 备注
-    */
-    @ApiModelProperty("备注")
-    private String remark;
+    private List<Long> userIds;
 
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/room/service/IRoomTeacherAppointService.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.room.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.room.dto.AddRoomTeacherAppointDto;
 import com.xjrsoft.module.room.dto.RoomTeacherAppointPageDto;
 import com.xjrsoft.module.room.entity.RoomTeacherAppoint;
 import com.xjrsoft.module.room.vo.RoomTeacherAppointPageVo;
@@ -26,4 +27,6 @@ public interface IRoomTeacherAppointService extends MPJBaseService<RoomTeacherAp
     Page<RoomTeacherAppointPageVo> getPage(Page<RoomTeacherAppointPageVo> page, RoomTeacherAppointPageDto dto);
 
     Boolean clearAppoint(List<Long> ids);
+
+    Boolean saveBatch(AddRoomTeacherAppointDto dto);
 }

+ 24 - 6
src/main/java/com/xjrsoft/module/room/service/impl/RoomTeacherAppointServiceImpl.java

@@ -1,10 +1,12 @@
 package com.xjrsoft.module.room.service.impl;
 
-import cn.hutool.core.util.ObjectUtil;
+import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
-import com.xjrsoft.module.courseTable.entity.CourseTable;
+import com.xjrsoft.common.enums.DeleteMark;
+import com.xjrsoft.module.room.dto.AddRoomTeacherAppointDto;
 import com.xjrsoft.module.room.dto.RoomTeacherAppointPageDto;
 import com.xjrsoft.module.room.entity.RoomTeacherAppoint;
 import com.xjrsoft.module.room.mapper.RoomTeacherAppointMapper;
@@ -13,6 +15,7 @@ import com.xjrsoft.module.room.vo.RoomTeacherAppointPageVo;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -32,10 +35,25 @@ public class RoomTeacherAppointServiceImpl extends MPJBaseServiceImpl<RoomTeache
 
     @Override
     public Boolean clearAppoint(List<Long> ids) {
-//        LambdaQueryWrapper<CourseTable> queryWrapper = new LambdaQueryWrapper<>();
-//        queryWrapper.eq(CourseTable::getClassId, dto.getClassId())
-//                .eq(ObjectUtil.isNotEmpty(dto.getWeeks()), CourseTable::getWeeks,dto.getWeeks());
-//        roomTeacherAppointMapper.selectList()
+        LambdaQueryWrapper<RoomTeacherAppoint> wrapper = Wrappers.lambdaQuery(RoomTeacherAppoint.class).in(RoomTeacherAppoint::getRoomId, ids);
+        roomTeacherAppointMapper.delete(wrapper);
+        return true;
+    }
+
+    @Override
+    public Boolean saveBatch(AddRoomTeacherAppointDto dto) {
+        Long createUserId = StpUtil.getLoginIdAsLong();
+        Date createDate = new Date();
+        for (Long userId : dto.getUserIds()) {
+            RoomTeacherAppoint appoint = new RoomTeacherAppoint();
+            appoint.setUserId(createUserId);
+            appoint.setCreateDate(createDate);
+            appoint.setDeleteMark(0);
+            appoint.setEnabledMark(1);
+            appoint.setUserId(userId);
+            appoint.setRoomId(dto.getRoomId());
+            roomTeacherAppointMapper.insert(appoint);
+        }
         return null;
     }
 }

+ 32 - 0
src/main/resources/mapper/room/RoomTeacherAppointMapper.xml

@@ -34,4 +34,36 @@
         </if>
         ORDER BY t1.sort_code
     </select>
+
+    <select id="getPage" parameterType="com.xjrsoft.module.room.dto.RoomTeacherAppointPageDto" resultType="com.xjrsoft.module.room.vo.RoomTeacherAppointPageVo">
+        SELECT t1.id,t1.sort_code,t2.name AS build_name,t1.floor_number,t1.room_name,t3.name AS gender_cn,
+        (
+        SELECT GROUP_CONCAT(c2.name) FROM room_teacher_appoint c1
+        LEFT JOIN xjr_user c2 ON c1.user_id = c2.id
+        WHERE c1.delete_mark = 0 AND c1.room_id = t1.id
+        ) AS appoint_users FROM room t1
+        LEFT JOIN base_office_build t2 ON t1.office_build_id = t2.id
+        LEFT JOIN xjr_dictionary_detail t3 ON t1.gender = t3.code AND t3.item_id = 2023000000000000004
+        WHERE t1.delete_mark = 0
+        <if test="dto.officeBuildId != null">
+            and t1.office_build_id = #{dto.officeBuildId}
+        </if>
+        <if test="dto.floorNumber != null">
+            and t1.floor_number = #{dto.floorNumber}
+        </if>
+        <if test="dto.roomName != null and dto.roomName != ''">
+            and t1.room_name like concat('%', #{dto.checkInStatus},'%')
+        </if>
+        <if test="dto.gender != null and dto.gender != ''">
+            and t1.gender = #{dto.gender}
+        </if>
+        <if test="dto.userId != null">
+            and t1.id in (
+            SELECT DISTINCT c1.room_id FROM room_teacher_appoint c1
+            LEFT JOIN xjr_user c2 ON c1.user_id = c2.id
+            WHERE c1.delete_mark = 0 AND c2.id = #{dto.userId}
+            )
+        </if>
+        ORDER BY t1.sort_code
+    </select>
 </mapper>