You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package com.spring.modules.base.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.github.pagehelper.PageRowBounds;import com.spring.common.utils.PageUtils;import com.spring.common.utils.R;import com.spring.modules.sys.entity.SysUserEntity;import org.apache.ibatis.session.SqlSession;import org.apache.poi.ss.formula.functions.T;import org.apache.shiro.SecurityUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;import java.util.Map;
/** * 通用查询控制器,Controller直接调用mybatis的selectList方法,省去service层等 */@Controllerpublic class CommonController { @Autowired SqlSession sqlSession;
/** * 通用查询分页,暂时有bug,如果当前页不在第一页时,加参数查询会有问题 */ @RequestMapping(value = "/select/{namespace}/{statement}/paging") @ResponseBody public R paging(@PathVariable("namespace") String namespace, @PathVariable("statement") String statement, @RequestBody Map<String, Object> paramMap) { SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); paramMap.put("site", currentUser.getSite()); int page = 1; if (paramMap.containsKey("page")) { page = Integer.parseInt(paramMap.get("page").toString()); } int size = 20; if (paramMap.containsKey("limit")) { size = Integer.parseInt(paramMap.get("limit").toString()); } PageRowBounds rowBounds = new PageRowBounds((page - 1) * size, size); List rows = sqlSession.selectList(namespace + "." + statement, paramMap, rowBounds); IPage<T> pageList = new Page<>(page, size,rowBounds.getTotal()); pageList.setRecords(rows); return R.ok().put("page", new PageUtils(pageList)); }
@RequestMapping(value = "/select/{namespace}/{statement}/list") @ResponseBody public R getList(@PathVariable("namespace") String namespace, @PathVariable("statement") String statement, @RequestBody Map<String, Object> paramMap) { List rows = sqlSession.selectList(namespace + "." + statement, paramMap); return R.ok().put("rows", rows); }
}
|