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


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);
}
}
网友评论