【机房报修管理系统】 后端篇(十四) Service层开发——实训室管理服务

本文详细介绍了实训室管理服务的接口设计与实现过程,包括获取机房信息、修改和删除机房信息等关键功能,以及如何增加实训室可用电脑数量的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前情提要


    上一次我们完成了历史工单管理服务的开发,这一次我们来实现实训室管理服务。



二、接口设计


1.获取全部机房信息:searchAllClass

  • 参数:无
  • 返回值:List<Class>

2.通过机房ID获取机房信息:searchClassById

  • 参数:id(机房ID编号,类型为Integer
  • 返回值:Class(机房的实体类)

3.通过机房名称获取机房信息:searchClassByName

  • 参数:name(机房名称,类型为String
  • 返回值:List<Class>

4.通过实训楼ID称获取机房信息:searchClassByBuildingId

  • 参数:buildingId(机房所属实训楼ID,类型为String
  • 返回值:List<Class>

5.获得全部实训室总数:getClassCount

  • 参数:无
  • 返回值:Integer

6.保存机房信息:saveClass

  • 参数:Class(实训室实体类)
  • 返回值:无

7.修改你机房信息:updateClass

  • 参数:Class(实训室实体类)
  • 返回值:无

8.删除机房信息:deleteClass

  • 参数:id(机房ID编号,类型为Integer
  • 返回值:无

9.增加实训室可用电脑:`increaseComputerEnable``

  • 参数:id(机房ID编号,类型为Integer
  • 返回值:无

10.减少实训室可用电脑:reduceComputerEnable

  • 参数:id(机房ID编号,类型为Integer
  • 返回值:无



三、实践操作


注意:我不会对所有接口进行详解,只会对一些需要注意的地方进行讲解。

1.按照上方设计的接口创建接口类ClassService

com.repairsystem.service下创界接口类ClassService

package com.repairsystem.service;

import com.repairsystem.entity.Class;

import java.util.List;

/**
 * @author CheungChingYin
 * @date 2019/1/17
 * @time 14:45
 */
public interface ClassService {

    /**
     * 获取全部机房信息
     * @return
     */
    List<Class> searchAllClass();

    /**
     * 通过机房ID获取机房信息
     * @param id
     * @return
     */
    Class searchClassById(Integer id);

    /**
     * 通过机房名称获取机房信息
     * @param name
     * @return
     */
    List<Class> searchClassByName(String name);

    /**
     * 通过实训楼ID称获取机房信息
     * @param buildingId
     * @return
     */
    List<Class> searchClassByBuildingId(String buildingId);

    Integer getClassCount();

    /**
     * 保存机房信息
     * @param classes
     */
    void saveClass(Class classes);

    /**
     * 修改你机房信息
     * @param classes
     */
    void updateClass(Class classes);

    /**
     * 删除机房信息
     * @param id
     */
    void deleteClass(Integer id);

    /**
     * 增加实训室可用电脑
     * @param id
     */
    void increaseComputerEnable(Integer id);

    /**
     * 减少实训室可用电脑
     * @param id
     */
    void reduceComputerEnable(Integer id);

}

2.创建接口实现类ClassServiceImpl

com.repairsystem.service.Impl下创建接口实现类ClassServiceImpl,重写ClassService接口。

@Service
public class ClassServiceImpl implements ClassService {

    @Autowired
    private ClassMapper classMapper;
}

3.实现增加实训室可用电脑:increaseComputerEnable

  • 参数:id(机房ID编号,类型为Integer
  • 返回值:无

这个服务主要用于当维修工单完成的时候,也就意味着损坏的电脑已经修好了,可以使用了,所以需要将记录可用电脑数+1,以保证电脑可用数的准确性。
com.repairsystem.service.Impl.ClassServiceImpl编写以下代码:

@Transactional(propagation = Propagation.REQUIRED)
    @Override
    public void increaseComputerEnable(Integer classId) {

        Class classes = classMapper.getClassById(classId);
        Integer computerEnable = classes.getComputerEnable() + 1;
        Integer computerDisable = classes.getComputerDisable() - 1;
        classes.setComputerEnable(computerEnable);
        classes.setComputerDisable(computerDisable);
        classMapper.updateByPrimaryKeySelective(classes);
    }

原理就是按照实训室ID查询该实训室的可用数和不可用数,然后可用数+1,不可用数-1,最后更新数据即可。
但是这样做相当于请求了数据库两次,是不建议的,因为当并发量大的时候数据库可能就撑不住了;建议使用自定义SQL语句的方式,进行自增和自减,这样只需要一次请求数据库即可,减少了一半的请求。

     到这里,Service层开发——实训室管理服务开发已经完成了。如果您对次篇文章有疑问,可以在文章下方留言,谢谢您的阅读。如对【机房报修管理系统】系列文章有兴趣,可以关注或收藏我的文章,您的支持是我最大的动力,我会尽快推出下一期内容,敬请期待。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值