配合Mybatis-Plus的公共类,IController(CommonController),利用泛型,直接生成较为简单的接口

package com.tong.common.web.web;

import com.baomidou.mybatisplus.extension.service.IService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;

import java.util.List;

public abstract class IController<S extends IService<T>, T> {

    @Autowired
    protected S service;

    /**
     * 根据主键获取业务信息
     *
     * @param id 主键
     * @return
     * @throws Exception
     */
    @GetMapping("/{id}")
    @ApiOperation("根据主键获取业务信息")
    public T get(@PathVariable String id) throws Exception {
        return service.getById(id);
    }

    /**
     * 保存或更新业务信息
     *
     * @param t 业务基本信息
     * @return
     * @throws Exception
     */
    @PostMapping("/save")
    @ApiOperation("保存或更新业务信息")
    public T save(T t) throws Exception {
        service.saveOrUpdate(t);
        return t;
    }


    /**
     * 根据主键删除业务信息
     *
     * @param id 主键
     * @return
     * @throws Exception
     */
    @DeleteMapping("/{id}")
    @ApiOperation("根据主键删除业务信息")
    public int delete(@PathVariable String id) throws Exception {
        service.removeById(id);
        return 1;
    }

    /**
     * 根据主键批量删除业务信息
     *
     * @param id 主键
     * @return
     * @throws Exception
     */
    @DeleteMapping
    @ApiOperation("根据主键批量删除业务信息")
    public int delete(@RequestParam List<String> id) throws Exception {
        if (CollectionUtils.isEmpty(id)) return 0;
        service.removeByIds(id);
        return id.size();
    }
    
}

你可能感兴趣的:(其他,java,开发语言)