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);