暑期项目实训SaaS云服务系统开发—云会议系统—— 7.24会议室的DAO、Service、Controller层的书写

7月24日开发日志

​ 已完成二期开发的大部分功能,对于会议室相关功能进行添加。已完成的接口如下:
在这里插入图片描述

增设了会议室实体类,各种字段分别用于判断会议室的停启用,是否正在使用,是否已删除:

package com.rjxy.Entity;

import lombok.Data;

import javax.persistence.*;
/**
 * @author: Joheey
 * Date: 2021/7/1
 * Time: 20:00
 * Description:会议室实体,预定义的实体,后续迭代开发中在写具体的功能。
 *              其中会议室可以不绑定公司与部门,方便前期开发。
 */
@Data
@Entity
@Table(name = "room")
public class Room {
    @Id
    @Column(name = "id", unique = true, length = 11)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column(name = "name")
    private String name;

    @Column(name = "company_id")
    private Integer companyId;

    @Column(name = "department_id")
    private Integer departmentId;

    @Column(name = "status")
    private Boolean status = false;

    @Column(name = "is_active")
    private Boolean isActive = true;

    @Column(name = "deleted")
    private Boolean deleted = false;

}

定义了会议室Service层的可能使用到的接口

package com.rjxy.Service;

import com.rjxy.Entity.Room;

import java.util.List;

public interface RoomService {

    Room setupRoom(Integer companyId, Integer departmentId, String roomName);

    //查询会议室
    List<Room> getRoomList(Integer companyId, Integer departmentId);//整合方法

    List<Room> getAvailableRoomList(Integer companyId, Integer departmentId);//整合方法

    List<Room> getAllRoomByCompany(Integer companyId);

    List<Room> getAllRoomByDepartment(Integer departmentId);

    List<Room> getAvailableRoomByCompany(Integer companyId);

    List<Room> getAvailableRoomByDepartment(Integer departmentId);


    //停启用会议室

    Boolean setRoomActive(Integer roomId);

    Boolean setRoomInactive(Integer roomId);

    //会议室归属权转移

    Boolean giveDepartmentRoom(Integer departmentId, Integer roomId);

    Boolean removeDepartmentRoom(Integer departmentId, Integer roomId);

    //删除会议室

    Boolean deleteRoom(Integer roomId);

}

对于相关方法进行实现:RoomServiceImpl

    @Override
    public Room setupRoom(Integer companyId, Integer departmentId, String roomName) {
        Room room = new Room();
        room.setCompanyId(companyId);
        room.setDepartmentId(departmentId);
        room.setName(roomName);
        roomRepository.save(room);
        roomRepository.flush();
        return room;
    }

    @Override
    public List<Room> getRoomList(Integer companyId, Integer departmentId) {
        Company company = companyRepository.findCompanyByIdAndDeletedFalse(companyId);
        if (company == null)
            return null;
        if (departmentId != null) {
            Department department = departmentRepository.findDepartmentById(departmentId);
            if (department.getCompanyId().equals(companyId))
                return getAllRoomByDepartment(departmentId);
            else
                return null;
        } else {
            return getAllRoomByCompany(companyId);
        }
    }

    @Override
    public List<Room> getAvailableRoomList(Integer companyId, Integer departmentId) {
        Company company = companyRepository.findCompanyByIdAndDeletedFalse(companyId);
        if (company == null)
            return null;
        if (departmentId != null) {
            Department department = departmentRepository.findDepartmentById(departmentId);
            if (department.getCompanyId().equals(companyId))
                return getAvailableRoomByDepartment(departmentId);
            else
                return null;
        } else {
            return getAvailableRoomByCompany(companyId);
        }
    }

    @Override
    public List<Room> getAllRoomByCompany(Integer companyId) {
        return roomRepository.findAllByCompanyIdAndDeletedFalse(companyId);
    }

    @Override
    public List<Room> getAllRoomByDepartment(Integer departmentId) {
        return roomRepository.findAllByDepartmentIdAndDeletedFalse(departmentId);
    }

    @Override
    public List<Room> getAvailableRoomByCompany(Integer companyId) {
        return roomRepository.findAllByCompanyIdAndIsActiveTrueAndStatusFalseAndDeletedFalse(companyId);
    }

    @Override
    public List<Room> getAvailableRoomByDepartment(Integer departmentId) {
        return roomRepository.findAllByDepartmentIdAndIsActiveTrueAndStatusFalseAndDeletedFalse(departmentId);
    }

    @Override
    public Boolean setRoomActive(Integer roomId) {
        Room room = roomRepository.findRoomByIdAndDeletedFalse(roomId);
        if (room != null) {
            room.setIsActive(true);
            roomRepository.saveAndFlush(room);
            return true;
        } else return false;

    }

    @Override
    public Boolean setRoomInactive(Integer roomId) {
        Room room = roomRepository.findRoomByIdAndDeletedFalse(roomId);
        if (room != null) {
            room.setIsActive(false);
            roomRepository.saveAndFlush(room);
            return true;
        } else return false;
    }

    @Override
    public Boolean giveDepartmentRoom(Integer departmentId, Integer roomId) {
        return false;
    }

    @Override
    public Boolean removeDepartmentRoom(Integer departmentId, Integer roomId) {
        return false;
    }

    @Override
    public Boolean deleteRoom(Integer roomId) {
        Room room = roomRepository.findRoomByIdAndDeletedFalse(roomId);
        if (room != null && !room.getStatus()) {
            room.setDeleted(true);
            roomRepository.save(room);
            return true;
        } else return false;
    }

提供给前端相关接口:

 @PostMapping("/setup")
    public Result<Room> setupRoom(@RequestParam Integer companyId,
                                  @RequestParam(required = false) Integer departmentId,
                                  @RequestParam String roomName) {
        return Result.success(roomService.setupRoom(companyId, departmentId, roomName));
    }

    @GetMapping("/all_room_list")
    public Result<List<Room>> getRoomList(@RequestParam Integer companyId,
                                          @RequestParam(required = false) Integer departmentId) {
        if (companyId != null)
            return Result.success(roomService.getRoomList(companyId, departmentId));
        else
            return Result.error(ErrorEnum.IllegalNullFieldError);
    }

    @GetMapping("/available_room_list")
    public Result<List<Room>> getAvailableRoomList(@RequestParam Integer companyId,
                                                   @RequestParam(required = false) Integer departmentId) {
        if (companyId != null)
            return Result.success(roomService.getAvailableRoomList(companyId, departmentId));
        else
            return Result.error(ErrorEnum.IllegalNullFieldError);

    }

    @PutMapping("/change_room_active")
    public Result<String> changeActive(@RequestParam Integer roomId,
                                       @RequestParam Boolean isActive) {
        Boolean exception;
        if (isActive)
            exception = roomService.setRoomActive(roomId);
        else
            exception = roomService.setRoomInactive(roomId);

        if (exception)
            return Result.success("更改成功");
        else
            return Result.error(ErrorEnum.RoomActiveChangeError);
    }

    @PutMapping("/delete")
    public Result<String> delete(@RequestParam Integer roomId) {
        if (roomService.deleteRoom(roomId))
            return Result.success("删除会议室成功");
        else
            return Result.error(ErrorEnum.RoomDeleteError);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值