美文网首页
父类BaseController和子类xxController方

父类BaseController和子类xxController方

作者: 墨色尘埃 | 来源:发表于2018-11-28 15:01 被阅读21次

BaseController是父类,PbzLifePathController继承BaseController,并多了两个新方法,当访问接口的时候http://127.0.0.1:10002/api/pbzLifePath/del报404错误,这是因为子类xxController中有个方法和父类BaseController里的重复了。

父类BaseController.png
子类xxController.png

PbzLifePathController

@TargetDataSource("ds3")
@RestController
@RequestMapping("/api/pbzLifePath")
public class PbzLifePathController extends BaseController<PbzLifePathService,
        PbzLifePathMapper,
        PbzLifePath, Long> {

    @RequestMapping(value = "/delById", method = RequestMethod.POST)
    @Transactional
    public ResponseObj<Boolean> delById(@RequestBody List<PbzLifePath> list) {
        if (list != null && list.size() > 0) {
            for (PbzLifePath pbzLifePath : list) {
                boolean b = service.updateById(pbzLifePath);
                return new ResponseObj<>(b, RetCode.SUCCESS);
            }
        }
        return new ResponseObj<>(false, RetCode.FAIL);
    }

    @RequestMapping(value = "/deldl", method = RequestMethod.POST)
    @Transactional
    public ResponseObj<Boolean> del(@RequestBody List<PbzLifePath> list) {
        boolean b = service.updateBatchById(list);
        return new ResponseObj<>(b, RetCode.SUCCESS);
    }

}
package com.cicdi.servertemplate.modules.baselibrary.control;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.cicdi.servertemplate.common.model.ResponseObj;
import com.cicdi.servertemplate.common.model.RetCode;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.util.List;

import javax.validation.Valid;

/**
 * 增删改差基础Controller
 *
 * @param <S> Service类型
 * @param <M> Mapper类型
 * @param <T> 增删改差的对象类型
 * @param <I> id的类型,主键的数据类型
 */
public class BaseController<S extends ServiceImpl<M, T>, M extends BaseMapper<T>, T, I extends Serializable> {

    @Autowired
    protected S service;

    @Autowired
    protected M mapper;

    @Autowired
    private BaseExecute<T> baseExecute;


    /**
     * 查询过滤属性使用,直接将要过滤的属性设置为Null即可
     *
     * @param object
     * @return
     */
    protected void queryFilter(T object) {

    }


    /**
     * 插入需要变换的值,或者校验的值
     *
     * @param object
     * @return
     */
    protected boolean commitFilter(T object) {
        return true;
    }


    /**
     * 返回列表
     *
     * @return
     */
    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public ResponseObj<List<T>> list(@ModelAttribute T model) {
        return baseExecute.list(model, service);
    }


    /**
     * @param page 查询一般传入参数为current和size, 例如/listPage?current=1&size=5,
     * @return 返回分页数据
     */
    @RequestMapping(value = "/page", method = RequestMethod.GET)
    public ResponseObj<Page<T>> listPage(@ModelAttribute Page<T> page, @ModelAttribute T model) {

        return baseExecute.listPage(page, model, service);
    }


    /**
     * insert主要是在insert和update要分开权限的时候使用
     *
     * @param object
     * @return
     */
    @RequestMapping(value = "/insert", method = RequestMethod.POST)
    @Transactional
    public ResponseObj<Boolean> insert(@RequestBody @Valid T object) throws NoSuchMethodException,
            IllegalAccessException, InvocationTargetException {
        return baseExecute.insert(object);
    }

    /**
     * update主要是在insert和update要分开权限的时候使用
     *
     * @param object
     * @return
     */
    @RequestMapping(value = "/upd", method = RequestMethod.POST)
    @Transactional
    public ResponseObj<Boolean> update(@RequestBody @Valid T object) {
        return baseExecute.update(object);
    }


    /**
     * 根据ID删除数据
     *
     * @return
     */
    @RequestMapping(value = "/del", method = RequestMethod.POST)
    @Transactional
    public ResponseObj<Boolean> del(@RequestBody List<T> list) {
        return baseExecute.deletebylogic(list);
    }


    // TODO: 2018/11/16  
    /**
     * 批量删除
     */
    @RequestMapping(value = "/deleteBatch", method = RequestMethod.POST)
    @Transactional
    public ResponseObj<Boolean> delList(@RequestBody List<I> ids) {
        boolean result = service.deleteBatchIds(ids);
        RetCode retCode = result ? RetCode.SUCCESS : RetCode.FAIL;
        return new ResponseObj<>(result, retCode);
    }



}

相关文章

  • 父类BaseController和子类xxController方

    BaseController是父类,PbzLifePathController继承BaseController,并...

  • day16-类和对象

    一、类的继承 1.基本概念 父类(超类):被继承的类 子类:去继承父类的类 继承定义:让子类直接拥有父类的属性和方...

  • Dart学习笔记——面向对象(二)

    继承 简单继承 Dart中的类的继承: 子类使用extends关键词来继承父类。 子类会继承父类里面可见的属性和方...

  • 2021-01-19java继承

    1,什么是继承 继承是类与类之间的一种关系,继承的类叫子类,被继承的类叫父类;子类继承父类后,将拥有父类的属性和方...

  • 多态

    向上转型,隐式转换,自动转型 父类引用指向子类,可以调用子类重写父类方法,及父类派生的方法,但无法调用子类特有的方...

  • 【PHP框架应用-Yii2】记录API接口执行时间

    在 BaseController 中继承父类的 beforeAction 和 afterAction 勾子,记录A...

  • Java学习第11天

    继承: 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法,或子类从父类继承方法,使得子类具有父类相同的行...

  • 重写RequstMapping

    方式一 当父类 BaseController 为不是bean时,父类暴露的@RequestMapping 方法允许...

  • 继承、多态

    继承 子类和父类只是相对而言,比如谁是谁的父类(子类)。父类子类是种相对关系,不会凭空产生 子类可以继承父类的成员...

  • Java继承

    继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父...

网友评论

      本文标题:父类BaseController和子类xxController方

      本文链接:https://www.haomeiwen.com/subject/gwoaqqtx.html