Springboot编写restful接口demo

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29726869/article/details/86627192
package org.alshat.so.admin.web;

import org.alshat.so.core.util.ResponseUtil;
import org.alshat.so.db.domain.MonProject;
import org.alshat.so.db.service.MonProjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/mon/project")
@Validated
public class MonProjectController {

    @Autowired
    private MonProjectService monProjectService;

    //项目列表(分页)
    @GetMapping("page")
    public Object page(String name,
                       @RequestParam(defaultValue = "1") Integer page,
                       @RequestParam(defaultValue = "10") Integer size
                       ){
        List<MonProject> list = monProjectService.page(name,page,size);
        int total = monProjectService.count(name);
        Map<String, Object> data = new HashMap<>();
        data.put("total", total);
        data.put("items", list);
        return ResponseUtil.ok(data);
    }

    //项目列表
    @GetMapping("")
    public Object list(){
        List<MonProject> list = monProjectService.list();
        return ResponseUtil.ok(list);
    }

    //获取项目
    @GetMapping("{id}")
    public Object list(@PathVariable String id){
        MonProject project = monProjectService.info(id);
        return ResponseUtil.ok(project);
    }

    //添加项目
    @PostMapping("")
    public Object add(@RequestBody MonProject monProject){
        try{
            List<MonProject> list = monProjectService.checkName(monProject);
            if(list.size()>0){
                return ResponseUtil.fail(409,"已存在相同项目名");
            }
            if(monProjectService.add(monProject)>0){
                return ResponseUtil.ok();

            }else {
                return ResponseUtil.errorAction();
            }
        }catch (Exception e){
            return ResponseUtil.errorAction();
        }
    }

    //修改项目
    @PutMapping("{id}")
    public Object update(@PathVariable String id,@RequestBody MonProject monProject){
        try{
            monProject.setId(id);
            if(monProjectService.update(monProject)>0){
                return ResponseUtil.ok();
            }else {
                return ResponseUtil.errorAction();
            }
        }catch (Exception e){
            return ResponseUtil.errorAction();
        }
    }

    //删除项目
    @DeleteMapping("{id}")
    public Object delete(@PathVariable String id){
        try{
            if(monProjectService.delete(id)>0){
                return ResponseUtil.ok();
            }else {
                return ResponseUtil.errorAction();
            }
        }catch (Exception e){
            return ResponseUtil.errorAction();
        }
    }
}

package com.equi.server.web;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.equi.server.entity.MonProject;
import com.equi.server.service.IMonProjectService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;


/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author mdk
 * @since 2019-01-28
 */
@RestController
@RequestMapping("/mon/project")
public class MonProjectController {
    @Autowired
    private IMonProjectService monProjectService;

    //项目列表(分页)
    @GetMapping("page")
    public Object page(String name,
                       @RequestParam(defaultValue = "1") Integer page,
                       @RequestParam(defaultValue = "10") Integer size
    ){
        Page<MonProject> projectPage = new Page<MonProject>();
        projectPage.setCurrent(page);
        projectPage.setSize(size);
        projectPage.setAsc("create_time");
        QueryWrapper<MonProject> qw = new QueryWrapper<>();
        if(!StringUtils.isEmpty(name)){
            qw.like("name",name);
        }
        Page<MonProject> list = (Page<MonProject>) monProjectService.page(projectPage,qw);
        return list;
    }

    //项目列表
    @GetMapping("")
    public Object list(){
        List<MonProject> list = monProjectService.list(new QueryWrapper<MonProject>().orderByAsc("create_time"));
        return list;
    }

    //获取项目
    @GetMapping("{id}")
    public Object list(@PathVariable String id){
        MonProject project = monProjectService.getById(id);
        return project;
    }

    //添加项目
    @PostMapping("")
    public Object add(@RequestBody MonProject monProject){
        try{
            if(StringUtils.isEmpty(monProject.getName())){
                return new ResponseEntity<String>("参数name必填", HttpStatus.PRECONDITION_FAILED);
            }
            //检查项目名是否重复
            QueryWrapper<MonProject> qw  = new QueryWrapper<MonProject>();
            qw.eq("name",monProject.getName());
            List<MonProject> list = monProjectService.list(qw);
            if(list.size()>0){
                return new ResponseEntity<String>("已存在相同项目名", HttpStatus.CONFLICT);
            }
            if(monProjectService.save(monProject)==true){
                return new ResponseEntity<String>("添加成功",HttpStatus.OK);

            }else {
                return new ResponseEntity<String>("添加失败",HttpStatus.INTERNAL_SERVER_ERROR);
            }
        }catch (Exception e){
            return new ResponseEntity<String>("添加失败",HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }

    //修改项目
    @PutMapping("{id}")
    public Object update(@PathVariable String id,@RequestBody MonProject monProject){
        try{
            monProject.setId(id);
            //校验项目名是否已存在
            if(!StringUtils.isEmpty(monProject.getName())){
                QueryWrapper<MonProject> qw  = new QueryWrapper<MonProject>();
                qw.eq("name",monProject.getName());
                qw.notIn("id",id);
                List<MonProject> list = monProjectService.list(qw);
                if(list.size()>0){
                    return new ResponseEntity<String>("已存在相同项目名", HttpStatus.CONFLICT);
                }
            }
            if(monProjectService.updateById(monProject)==true){
                return new ResponseEntity<String>("修改成功",HttpStatus.OK);
            }else {
                return new ResponseEntity<String>("修改失败",HttpStatus.INTERNAL_SERVER_ERROR);
            }
        }catch (Exception e){
            System.out.println(e);
            return new ResponseEntity<String>("修改失败",HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }

    //删除项目
    @DeleteMapping("{id}")
    public Object delete(@PathVariable String id){
        try{
            UpdateWrapper<MonProject> qw = new UpdateWrapper <MonProject>();
            qw.eq("id",id);
            qw.set("delete_status","1");
            if(monProjectService.update(qw)==true){
                return new ResponseEntity<String>("删除成功",HttpStatus.OK);
            }else {
                return new ResponseEntity<String>("删除失败",HttpStatus.INTERNAL_SERVER_ERROR);
            }
        }catch (Exception e){
            return new ResponseEntity<String>("删除失败",HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_29726869/article/details/86627192