【机房报修管理系统】后端篇(二十一) Controller层开发——历史工单相关接口

一、前情提要


    上一次我们完成了工单管理接口的开发,这一次我们来实现历史工单的开发,其实历史工单的开发和工单管理开发差不多,基本的增删改查即可。


二、接口功能设想


    接口需要有基本的增删改查功能外,还需要在查询功能上,有维修问题关键字查询,因为历史工单是给以后的机房管理员遇到问题时,查询有没有相关的问题解决方案,所以需要对问题进行模糊查询。


三、接口设计及实现


注意:以下的接口不再进行详细说明,需要的同学请查看我的GitHub

  • getAllCompleteOrderInfo(获得所有已完成的维修工单)
  • getCompleteOrderInfoById(通过已完成维修工单ID获得工单信息)
  • updateCompleteOrder(更新完成维修工单)
  • deleteCompleteOrder(删除完成维修工单)

1.创建完成工单的VO类CompleteOrderVO

com.repairsystem.entity.vo创建VO类CompleteOrderVO

package com.repairsystem.entity.vo;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;

/**
 * @author CheungChingYin
 * @date 2018/11/2
 * @time 21:37
 */
public class CompleteOrderVO {

    private Integer orderId;
    private String problem;
    private String remark;
    private String adminName;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date completeTime;
    private String imagePath;
    private String className;
    private String buildingName;
    private Integer computerNumber;

    public Integer getOrderId() {
        return orderId;
    }

    public void setOrderId(Integer orderId) {
        this.orderId = orderId;
    }

    public String getProblem() {
        return problem;
    }

    public void setProblem(String problem) {
        this.problem = problem;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getAdminName() {
        return adminName;
    }

    public void setAdminName(String adminName) {
        this.adminName = adminName;
    }

    public Date getCompleteTime() {
        return completeTime;
    }

    public void setCompleteTime(Date completeTime) {
        this.completeTime = completeTime;
    }

    public String getImagePath() {
        return imagePath;
    }

    public void setImagePath(String imagePath) {
        this.imagePath = imagePath;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public String getBuildingName() {
        return buildingName;
    }

    public void setBuildingName(String buildingName) {
        this.buildingName = buildingName;
    }

    public Integer getComputerNumber() {
        return computerNumber;
    }

    public void setComputerNumber(Integer computerNumber) {
        this.computerNumber = computerNumber;
    }

    @Override
    public String toString() {
        return "CompleteOrderVO{" +
                "orderId=" + orderId +
                ", problem='" + problem + '\'' +
                ", remark='" + remark + '\'' +
                ", adminName='" + adminName + '\'' +
                ", completeTime=" + completeTime +
                ", imagePath='" + imagePath + '\'' +
                ", className='" + className + '\'' +
                ", buildingName='" + buildingName + '\'' +
                ", computerNumber=" + computerNumber +
                '}';
    }
}

2.创建历史工单的接口CompleteOrderController

com.repairsystem.web.controller创建类CompleteOrderController

@RestController
@Api(value = "完成维修工单相关接口", tags = {"完成维修工单业务相关接口"})
@RequestMapping("/completeOrders")
public class CompleteOrderController {

    @Autowired
    private CompleteOrderService completeOrderService;
}

3.实现通过关键词搜索已完成维修工单问题:getCompleteOrderInfoByKeyWord

  • URI:/completeOrders/getCompleteOrderInfoByKeyWord
  • 请求方式:GET
  • 请求参数:page(当前页,基本类型为String
  • 请求参数:keyWord(搜索关键词,基本类型为String
  • 返回信息:状态码200,相应的问题信息(请求成功时)
  • 返回信息:状态码500,传入的当前页(page)不能为空(传入当前页为空时)
  • 返回信息:状态码500,传入的查询关键字(keyWord)不能为空(传入查询关键字为空时)
  • 实现方式:
    1.检查传入的参数是否为空,如果为空则返回传入参数为空的信息。
    2.对传入的当前页进行分页,生成分页信息。
    3.调用服务层的模糊查询方法进行查询。
    4.返回所有信息。
 @ApiOperation(value = "通过关键词搜索已完成维修工单问题")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "page", value = "当前页", required = true, dataType = "String", paramType = "query"),
            @ApiImplicitParam(name = "keyWord",value = "搜索关键词",required = true,dataType = "String",paramType = "query")
    })
    @GetMapping("getCompleteOrderInfoByKeyWord")
    public JsonResult getCompleteOrderInfoByKeyWord(String page, String keyWord){
        if (StringUtils.isBlank(page)) {
            return JsonResult.errorMsg("传入的当前页(page)不能为空");
        }
        if (StringUtils.isBlank(keyWord)) {
            return JsonResult.errorMsg("传入的查询关键字(keyWord)不能为空");
        }
        PageHelper.startPage(Integer.parseInt(page), ConstantUtils.Page.PAGESIZE);
        List<CompleteOrder> listCompleteOrder = completeOrderService.searchCompleteOrderByKeyWord(keyWord);
        List<CompleteOrderVO> listVO = Entity2VO.entityList2VOList(listCompleteOrder,CompleteOrderVO.class);

        Map<String, Object> pageMap = PageUtils.pageHandler(page,listCompleteOrder.size()+"");

        Map<String, Object> resultMap = new HashMap<String, Object>();
        resultMap.put("pageMap", pageMap);
        resultMap.put("Info", listVO);
        return JsonResult.ok(resultMap);
    }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值